Testing the new Experimental Transcoder (for improved remote viewing of recorded content)

Adaptive streaming was not enabled. I will send the log over tonight.

I've made progress on implementing adaptive streaming in the client apps. In my testing today in various situations, it has performed well, but is still very new. To begin with, I've only released iOS and tvOS beta builds with support.

iOS and tvOS beta build Version 2019 (9.3.522) has been posted:

  • NEW: Adaptive streaming when experimental transcoder is enabled in DVR

DVR beta build v2019.09.03.0745 has been posted:

  • NEW: Provide new HTTP header to help client identify if clients are waiting on the server to encode segments
  • IMPROVED: Encoder restarting more than necessary when client is seeking

When running the latest iOS and tvOS beta build it will use adaptive streaming when New Transcoder Adaptive Streaming is enabled on the DVR. The Streaming Quality setting in the app will dictate the maximum bitrate the client uses.

Is ok to select both settings?

Yes. More details about it are here:

I’ve just posted new builds that improve on the reliability of adaptive streaming.

iOS and tvOS beta build Version 2019 (9.8.100) has been posted:

  • IMPROVED: Adaptive streaming switches to a lower bitrate more quickly when connection has high packet loss

DVR beta build v2019.09.07.0705 has been posted:

  • NEW: Audio bitrate is adjusted based on video bitrate
  • IMPROVED: Audio bitrate is now taken into account in the bitrates advertised in the master.m3u8
  • FIXED: Streaming indexer could sometimes generate index with wrong (very large durations)

I've also just released an Android beta app on the Play Store with support for adaptive streaming.

Please let me know how they work for you.

1 Like

Thank you all for your help! DVR beta v2019.09.12.2317 has been released that makes the new transcoder the default for recorded content.

2 Likes

I have an issue with the new transcoder on the latest beta releases (in the last week or so) and have had to switch back to the old transcoder to fix:

I use firetv4k as my interface for channels and with the new transcoder, if i play a recorded tv show everything works fine / as expected from beginning, until i skip forwards.

All my streams are transcoded at 720p 6mb internally around the house as firetv doesnt support original files for HD UK tv due to known firmware bug

Issue: When skipping forwards the app freezes on a black screen and eventually the app quits and i am pushed back to the firetv dashboard.

Looking at the backend, the transcoder correctly displays the show i am watching when started, however after pressing skip forwards, the transcoder state changes for the show and just says "(ready)" after the show name instead of the transcoding speed.

At a guess it looks like resume transcoding from skip is not triggering the transcoder to start transcoding again

When setting the check box to use the old transcoder, everything works fine again (just with the known issues above re audio sync etc)

Here are the relevant log lines during failures:

2019/09/26 21:22:20 [HLS] Stopping inactive session file376-ip10.0.0.15
2019/09/26 21:23:50 [HLS] Stopping inactive session file376-ip10.0.0.15
2019/09/26 21:24:50 [SYS] Shutting down...
2019/09/26 21:24:50 [SYS] Bonjour service stopped.
2019/09/26 21:24:50 [DVR] Recording engine stopped.
2019/09/26 21:24:51 [SYS] Goodbye.
2019/09/26 21:26:48 [SYS] Starting Channels DVR v2019.09.25.0055 (linux-x86_64 pid:11033) in /volume1/@appstore/ChannelsDVR/channels-dvr/data
2019/09/26 21:26:49 [HDR] Found 1 devices
2019/09/26 21:26:53 [SYS] Started HTTP Server
2019/09/26 21:26:58 [DVR] Recording engine started in /volume1/ChannelsDVR
2019/09/26 21:26:58 [SYS] Bonjour service running for dvr-housenetnas.local. [10.0.0.10]
2019/09/26 21:26:58 [DVR] Waiting 23h30m1.312700934s until next job 1569614220-51 Celebrity MasterChef
2019/09/26 21:27:05 [CACHE] Deleting cache for file 376 (0B). Last access was 0001-01-01 00:00:00 +0000 UTC
2019/09/26 21:27:07 [SYS] Created database snapshot: backup-20190926.212659
2019/09/26 21:27:07 [SYS] Removing old backup backup-20190830.211016
2019/09/26 21:27:08 [IDX] Pruned 0 expired airings from GBR-1000014-DEFAULT in 523.04µs.
2019/09/26 21:27:23 [SYS] Created database snapshot: backup-20190926.212721
2019/09/26 21:27:23 [SYS] Removing old backup backup-20190831.211019
2019/09/26 21:29:38 [HLS] Stopping inactive session file376-ip10.0.0.15
2019/09/26 21:30:47 [HLS] Starting transcoder for file376-ip10.0.0.15 at 0s from 10.0.0.15 (encoder=h264_vaapi, resolution=720, deinterlacer=hardware, bitrate=6000)
[h264 @ 0x23fa2c0] mmco: unref short failure
Last message repeated 1 times
[h264 @ 0x23fa2c0] Increasing reorder buffer to 3
[mpegts @ 0x23f5740] start time for stream 2 is not set in estimate_timings_from_pts
[mpegts @ 0x23f5740] Dropped corrupted packet (stream = 1)
[h264 @ 0x242eec0] co located POCs unavailable
[h264 @ 0x2534c00] reference picture missing during reorder
Last message repeated 1 times
[h264 @ 0x2534c00] Missing reference picture, default is 65371
Last message repeated 1 times
[h264 @ 0x2551400] mmco: unref short failure
2019/09/26 21:30:48 [HLS] Stopping transcoder for file376-ip10.0.0.15 after seek to 1m9s (out=2.879622s, finished=false)
2019/09/26 21:30:49 [HLS] Starting transcoder for file376-ip10.0.0.15 at 1m9s from 10.0.0.15 (encoder=h264_vaapi, resolution=720, deinterlacer=hardware, bitrate=6000)
[h264 @ 0x26b61c0] mmco: unref short failure
Last message repeated 1 times
[h264 @ 0x26b61c0] Increasing reorder buffer to 3
[mpegts @ 0x26b1780] start time for stream 2 is not set in estimate_timings_from_pts
[mpegts @ 0x26b1780] Dropped corrupted packet (stream = 1)
Last message repeated 3 times
[NULL @ 0x26b61c0] reference count 1 overflow
Last message repeated 52 times
[mpegts @ 0x26b1780] Dropped corrupted packet (stream = 1)
[NULL @ 0x26b61c0] reference count 1 overflow
[NULL @ 0x26b61c0] Out of range weight is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[NULL @ 0x26b61c0] If you want to help, upload a sample of this file to ftp://upload.ffmpeg.org/incoming/ and contact the ffmpeg-devel mailing list. ([email protected])
[NULL @ 0x26b61c0] Out of range weight is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[NULL @ 0x26b61c0] If you want to help, upload a sample of this file to ftp://upload.ffmpeg.org/incoming/ and contact the ffmpeg-devel mailing list. ([email protected])
[NULL @ 0x26b61c0] Out of range weight is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[NULL @ 0x26b61c0] If you want to help, upload a sample of this file to ftp://upload.ffmpeg.org/incoming/ and contact the ffmpeg-devel mailing list. ([email protected])
[NULL @ 0x26b61c0] Out of range weight is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[NULL @ 0x26b61c0] If you want to help, upload a sample of this file to ftp://upload.ffmpeg.org/incoming/ and contact the ffmpeg-devel mailing list. ([email protected])
[NULL @ 0x26b61c0] Out of range weight is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[NULL @ 0x26b61c0] If you want to help, upload a sample of this file to ftp://upload.ffmpeg.org/incoming/ and contact the ffmpeg-devel mailing list. ([email protected])
[NULL @ 0x26b61c0] Out of range weight is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[NULL @ 0x26b61c0] If you want to help, upload a sample of this file to ftp://upload.ffmpeg.org/incoming/ and contact the ffmpeg-devel mailing list. ([email protected])
[NULL @ 0x26b61c0] reference count 1 overflow
[NULL @ 0x26b61c0] illegal reordering_of_pic_nums_idc 4
[NULL @ 0x26b61c0] reference count 1 overflow
[NULL @ 0x26b61c0] illegal reordering_of_pic_nums_idc 4
[NULL @ 0x26b61c0] reference count 1 overflow
[NULL @ 0x26b61c0] illegal reordering_of_pic_nums_idc 4
[NULL @ 0x26b61c0] reference count 1 overflow
[NULL @ 0x26b61c0] illegal reordering_of_pic_nums_idc 4
[NULL @ 0x26b61c0] reference count 1 overflow
[NULL @ 0x26b61c0] illegal reordering_of_pic_nums_idc 4
[NULL @ 0x26b61c0] reference count 1 overflow
[NULL @ 0x26b61c0] illegal reordering_of_pic_nums_idc 4
[NULL @ 0x26b61c0] Out of range weight is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[NULL @ 0x26b61c0] If you want to help, upload a sample of this file to ftp://upload.ffmpeg.org/incoming/ and contact the ffmpeg-devel mailing list. ([email protected])
[NULL @ 0x26b61c0] Out of range weight is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[NULL @ 0x26b61c0] If you want to help, upload a sample of this file to ftp://upload.ffmpeg.org/incoming/ and contact the ffmpeg-devel mailing list. ([email protected])
[NULL @ 0x26b61c0] reference count 1 overflow
[NULL @ 0x26b61c0] Out of range weight is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[NULL @ 0x26b61c0] If you want to help, upload a sample of this file to ftp://upload.ffmpeg.org/incoming/ and contact the ffmpeg-devel mailing list. ([email protected])
[NULL @ 0x26b61c0] Out of range weight is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[NULL @ 0x26b61c0] If you want to help, upload a sample of this file to ftp://upload.ffmpeg.org/incoming/ and contact the ffmpeg-devel mailing list. ([email protected])
[NULL @ 0x26b61c0] Out of range weight is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[NULL @ 0x26b61c0] If you want to help, upload a sample of this file to ftp://upload.ffmpeg.org/incoming/ and contact the ffmpeg-devel mailing list. ([email protected])
[NULL @ 0x26b61c0] Out of range weight is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[NULL @ 0x26b61c0] If you want to help, upload a sample of this file to ftp://upload.ffmpeg.org/incoming/ and contact the ffmpeg-devel mailing list. ([email protected])
[NULL @ 0x26b61c0] Out of range weight is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[NULL @ 0x26b61c0] If you want to help, upload a sample of this file to ftp://upload.ffmpeg.org/incoming/ and contact the ffmpeg-devel mailing list. ([email protected])
[NULL @ 0x26b61c0] Out of range weight is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[NULL @ 0x26b61c0] If you want to help, upload a sample of this file to ftp://upload.ffmpeg.org/incoming/ and contact the ffmpeg-devel mailing list. ([email protected])
[NULL @ 0x26b61c0] Out of range weight is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[NULL @ 0x26b61c0] If you want to help, upload a sample of this file to ftp://upload.ffmpeg.org/incoming/ and contact the ffmpeg-devel mailing list. ([email protected])
[NULL @ 0x26b61c0] Out of range weight is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[NULL @ 0x26b61c0] If you want to help, upload a sample of this file to ftp://upload.ffmpeg.org/incoming/ and contact the ffmpeg-devel mailing list. ([email protected])
[NULL @ 0x26b61c0] reference count 1 overflow
[NULL @ 0x26b61c0] illegal reordering_of_pic_nums_idc 4
[NULL @ 0x26b61c0] reference count 1 overflow
[NULL @ 0x26b61c0] illegal reordering_of_pic_nums_idc 4
[NULL @ 0x26b61c0] reference count 1 overflow
[NULL @ 0x26b61c0] illegal reordering_of_pic_nums_idc 4
[NULL @ 0x26b61c0] reference count 1 overflow
[NULL @ 0x26b61c0] illegal reordering_of_pic_nums_idc 4
[NULL @ 0x26b61c0] reference count 1 overflow
[NULL @ 0x26b61c0] illegal reordering_of_pic_nums_idc 4
[NULL @ 0x26b61c0] reference count 1 overflow
[NULL @ 0x26b61c0] illegal reordering_of_pic_nums_idc 4
[h264 @ 0x275fe40] mmco: unref short failure
[h264 @ 0x27c2000] reference picture missing during reorder
[h264 @ 0x27c2000] Missing reference picture, default is 2147483647
2019/09/26 21:31:06 [HLS] Stopping transcoder for file376-ip10.0.0.15 after seek to 2m52s (out=1m52.879622s, finished=false)
2019/09/26 21:31:07 [HLS] Starting transcoder for file376-ip10.0.0.15 at 2m52s from 10.0.0.15 (encoder=h264_vaapi, resolution=720, deinterlacer=hardware, bitrate=6000)
[h264 @ 0x36001c0] mmco: unref short failure
Last message repeated 1 times
[h264 @ 0x36001c0] Increasing reorder buffer to 3
[mpegts @ 0x35fb780] start time for stream 2 is not set in estimate_timings_from_pts
[mpegts @ 0x35fb780] Dropped corrupted packet (stream = 1)
Last message repeated 3 times
[NULL @ 0x36001c0] reference count 1 overflow
Last message repeated 52 times
[mpegts @ 0x35fb780] Dropped corrupted packet (stream = 1)
[NULL @ 0x36001c0] reference count 1 overflow
[h264 @ 0x36fee00] mmco: unref short failure
[h264 @ 0x36e1480] mmco: unref short failure
2019/09/26 21:31:20 [HLS] Stopping transcoder for file376-ip10.0.0.15 after seek to 4m55s (out=3m26.639622s, finished=false)
2019/09/26 21:31:20 [HLS] Starting transcoder for file376-ip10.0.0.15 at 4m55s from 10.0.0.15 (encoder=h264_vaapi, resolution=720, deinterlacer=hardware, bitrate=6000)
[h264 @ 0x36e31c0] mmco: unref short failure
Last message repeated 1 times
[h264 @ 0x36e31c0] Increasing reorder buffer to 3
[mpegts @ 0x36de780] start time for stream 2 is not set in estimate_timings_from_pts
[mpegts @ 0x36de780] Dropped corrupted packet (stream = 1)
Last message repeated 3 times
[NULL @ 0x36e31c0] reference count 1 overflow
Last message repeated 52 times
[mpegts @ 0x36de780] Dropped corrupted packet (stream = 1)
[NULL @ 0x36e31c0] reference count 1 overflow
[h264 @ 0x37ba840] mmco: unref short failure
[h264 @ 0x382a180] mmco: unref short failure
2019/09/26 21:33:47 [HLS] Stopping transcoder session file376-ip10.0.0.15 (view: 11m3s, out: 11m2.639622s, finished: false)
2019/09/27 00:06:00 [DVR] Fetching guide data for 11 stations in GBR-1000014-DEFAULT @ 2019-09-27 12:00AM

This is very interesting! Thanks for reporting it.

Would you be able to upload any of these files to dropbox or google drive and send a link to [email protected]? I would love to try to replicate this issue myself to identify what's going wrong.

Sure - they are just standard HD recordings from things like BBC1 and ITV here in the uk.. i will send over an example file now :slight_smile:

hey Eric - link sent to support email with test file.. let me know if you got it as it went via icloud mail drop :slight_smile:

Got it. It looks like there must be a couple issues interacting badly together.

I was unable to replicate the situation that you were seeing on my development system — I didn't see those [NULL ... messages and seeking worked fine.

I'm going to try it on a Synology to see if I can get the same behavior and am also seeing if we can figure out what those messages are about.

1 Like

Legend :slight_smile: thanks Eric!

further to my last comment if it helps i am running a synology 718+ and having just looked at the logs the NULL .. seem to be in the logs with the old transceiver as well (although much less frequently and doesnt crash the firetv app)

I don’t often watch remotely, but I did yesterday while on the interstate. Overall, the stream was very stable, changing quality on the fly as my cell signal fluctuated. However, The audio and video were out of sync from the start and remained so throughout. It was a couple of second off. I’m on the latest release of the DVR, using the adaptive transcoder.

Is there any update on when the new transcoder will get the feature to always transcode (rather than dynamically selecting) so that users in the UK with fireTv 4k stop being forced to use the old transcoder version?

If i select new transcoder at the moment it ignores the transcode selection depending on content being played which then causes further issues in fireTv with poor deinterlacing etc

Please can we have a toggle to always force transcode!

Which fire tv model and firmware bug are you referring to?

Please see here re Erics response:

I understand the transcoder issue, but I would like to know what FireTV device you are using and why you need an always transcode option.

If i dont transcode the video the image quality for the main HD tv channels (1080i) (bbc, itv, channel 4) is horrific and virtually unwatchable.

The hardware deinterlacing does not work and whenever there is fast moving motion the picture breaks up in interlaced lines.

The app also does not switch framerate / resolution so everything is delivered in 1080p even though the non transcoded stream is 1080i

Basically forcing 720p 6mb and using old transcoder fixes all issues and plays back ok at the stuck 1080p with no artefacts (except for audio sync issues occasionally)

Using new transcoder works some times until it decides not to transcode and the all the interlacing issues return.

Regardless of source / transcoder etc, the app never switches from 1080p 60hz (even though 50hz is default here in uk)

Hope that helps

1 Like

Which fire tv model are you using?