New Option on Recording - Regenerate Streaming Index

The processes didn't terminate when I toggled the DVR OFF/ON in the web UI.
I had to stop and start the Channels DVR package from the Synology Package Center.

Just curious how this processes a recording so fast.
When I did the "Regenerate Streaming Index" for the recordings (one by one manually), it only seemed to take a few seconds for each and the only way I could tell if it was done was watching the web UI->Settings->Activity.
The log only shows that it started, not if it was successful or finished.
Is it really that fast?

The zombie ffprobe issue is fixed in the latest build.

The indexer is pretty fast- it is limited only by your HDD speed. If you can read 100MB/s off your drive and a typical 1h TVE recording is 1GB, it should only takes 10s to process.

Thanks,

Re: The zombie ffprobe issue is fixed in the latest build.
Assume you mean 2019.07.18.0212? If so, will test.
Seems to work, kicked off regen on all recordings one after the other from the web UI without waiting.

Re: The log only shows that it started, not if it was successful or finished.
Can you add logging that shows if it was successful or not and finished?
Logs only show [M3U8] Regenerating m3u8 for...
No further info if successful or not or finished.

Thanks

Are you ready to run this automatically on our old recordings?

Are the index files being created with certain permissions set?

I'm not sure, are you seeing something weird? We're using a new way of creating for these files so there might be something different compared to other files created by the DVR.

Nothing weird, I think the index files just have user only rw permissions now.

I just checked the files generated from 11 July when I reindexed a bunch of files when the feature was introduced, and they all have permissions of 600, just like the current beta produces.

Currently running 2019.07.20.0419 and I'm seeing file perms of 000 for mine.

# ls -lR /volume1/arkives/ChannelsDVR/Streaming/m3u8/*/stream.m3u8
---------- 1 root root 210981 Jul 17 19:57 /volume1/arkives/ChannelsDVR/Streaming/m3u8/1265/stream.m3u8
---------- 1 root root 109240 Jul 17 20:03 /volume1/arkives/ChannelsDVR/Streaming/m3u8/1418/stream.m3u8
---------- 1 root root 114815 Jul 17 20:03 /volume1/arkives/ChannelsDVR/Streaming/m3u8/1420/stream.m3u8
---------- 1 root root 112231 Jul 17 20:03 /volume1/arkives/ChannelsDVR/Streaming/m3u8/1421/stream.m3u8
---------- 1 root root 114458 Jul 17 20:03 /volume1/arkives/ChannelsDVR/Streaming/m3u8/1422/stream.m3u8
---------- 1 root root 110688 Jul 17 20:03 /volume1/arkives/ChannelsDVR/Streaming/m3u8/1425/stream.m3u8
---------- 1 root root 117205 Jul 17 20:03 /volume1/arkives/ChannelsDVR/Streaming/m3u8/1426/stream.m3u8
---------- 1 root root 110692 Jul 17 20:03 /volume1/arkives/ChannelsDVR/Streaming/m3u8/1429/stream.m3u8
---------- 1 root root 107677 Jul 17 20:03 /volume1/arkives/ChannelsDVR/Streaming/m3u8/1431/stream.m3u8
---------- 1 root root 116962 Jul 17 20:03 /volume1/arkives/ChannelsDVR/Streaming/m3u8/1432/stream.m3u8
---------- 1 root root 112417 Jul 17 20:02 /volume1/arkives/ChannelsDVR/Streaming/m3u8/1433/stream.m3u8
---------- 1 root root 115078 Jul 17 20:02 /volume1/arkives/ChannelsDVR/Streaming/m3u8/1434/stream.m3u8
---------- 1 root root 108180 Jul 17 20:02 /volume1/arkives/ChannelsDVR/Streaming/m3u8/1444/stream.m3u8
---------- 1 root root 116853 Jul 17 20:02 /volume1/arkives/ChannelsDVR/Streaming/m3u8/1445/stream.m3u8
---------- 1 root root 109877 Jul 17 20:02 /volume1/arkives/ChannelsDVR/Streaming/m3u8/1447/stream.m3u8
---------- 1 root root 107177 Jul 18 23:00 /volume1/arkives/ChannelsDVR/Streaming/m3u8/1527/stream.m3u8
---------- 1 root root   5608 Jul 20 20:13 /volume1/arkives/ChannelsDVR/Streaming/m3u8/1533/stream.m3u8
# stat /volume1/arkives/ChannelsDVR/Streaming/m3u8/1533/stream.m3u8
  File: ā€˜/volume1/arkives/ChannelsDVR/Streaming/m3u8/1533/stream.m3u8ā€™
  Size: 5608            Blocks: 16         IO Block: 4096   regular file
Device: fc00h/64512d    Inode: 428605450   Links: 1
Access: (0000/----------)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-07-20 20:13:22.423086514 -0700
Modify: 2019-07-20 20:13:22.423086514 -0700
Change: 2019-07-20 20:13:22.423086514 -0700
 Birth: -
1 Like

Gross. What filesystem are you using and how is it mounted?

# df -hT /dev/vg1000/lv
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/vg1000/lv ext4   37T   12T   25T  33% /volume1

It's a Synology DS1019+ NAS running DSM v6.2.2-24922 Update 2 on a 5 disk SHR raid.
Storage%20Manager-Storage%20Pool

I also just reinstalled ChannelsDVR on my old Synology DS1513+ running the same DSM version and same SHR raid, updated ChannelsDVR to the latest pre-release 2019.07.20.0419, started a recording and I see the same thing where the file has perms 000.

1 Like

How does one send that command on a windows system?
I would like the ability to regen all my indexes, and also regen com skip files for a whole folder on a Windows system.

What situation are you running into that would cause you to need to regenerate all of your indexes?

I have super old recordings from 2017 and 2018 that still dont have this generated, for the streaming index, and would like to get it generated.
I also have a bunch of recordings that were recorded before I changed the setting to detect commercials automatically. So for me to manually go thorough each episode to regenerate consumes a lot of time. Would like to bypass.

Both jq and curl offer Windows binaries. You can also you a tool like Chocolatety to manage tools like these.

Is there a simple url address I can go to on the local dvr to regen a whole directory?

No. Each file must be done separately. The script posted above uses curl to get a list of all recordings, then jq parses those that have no index, and for those missing an index, uses curl to request a new index.

It's brilliant script. A little pity it is dependent on jq but I assume jq can be included for any app with GUI interface (maybe I should write one ehh).
Now the only (probably) thing I'm missing is websocket for listening when I start and end playing episode and which one, so I could finally do some Trakt integration.

There is already an api to get real time events such as when a recording is being watched.