Transcoding live (HLS) streams

The below is a conversation in the SVTPlay plugin thread under Available Plugins:
So there, I'm doing what ottomatic suggested!
ottomatic wrote:n3mmr wrote:Here's a DEBUG log of trying to watch a Live stream from http://svtplay.se/kanaler on a Sony BDP-S370 bluray player, probably a 2010 model, it does have the latest FW. Profile is set to be the x70 (2010)
Serviio is 1.2RC, the profiles.xml is the one supplied by Patters for 1.2.
The plugin SVTPlay.groovy is v 1.1.9
fmpeg is 1.1.2 compiled to work with the 1.2RC as prescribed by Zip.
Java is jre1.7.0_15 for 64 bit Solaris.
Symptoms are: I select the show (in this case the all-day-time SVT Forum Live Stream on SVT2).
Player puts up the Title after about 10 sec.
Then it goes dark. After a little more time it throws up the title again and the skeleton around the audio stream properties.
Finally you can see serviio killing off a process because nothing happens ( there's a 20 sec activitiy watchdog??).
The log ends with some other stuff, rescanning the online resources. It starts at first light, i e when the BluRay player calls for attention.
The Bluray player has the IP addr 192.168.1.26
The attached log should cover everything from the player starts up until it has stopped and turned off of its own volition.
And then some.
P.S. Watching the same show (and all the other live streams from SVT) works perfectly on my WD TV Live HD.
I took the command which I found in the log file and switched the trailing "pipe:" option so that it points to an output file on disk instead, thus:
This is the output:
- Code:
ffmpeg version 1.1.1 Copyright (c) 2000-2013 the FFmpeg developers
built on Feb 5 2013 21:59:54 with gcc 4.7.2 (GCC)
configuration: --enable-static --disable-shared --disable-ffplay --disable-ffserver --enable-memalign-hack --enable-libmp3lame --enable-libass --enable-librtmp --enable-fontconfig --enable-libfreetype --enable-zlib --extra-lib
'-lrtmp -lpolarssl -lws2_32 -lwinmm -lexpat -lfreetype -lfribidi -lz' --arch=x86 --enable-runtime-cpudetect --enable-pthreads --target-os=mingw32 --cross-prefix=i686-w64-mingw32- --pkg-config=pkg-config
libavutil 52. 13.100 / 52. 13.100
libavcodec 54. 86.100 / 54. 86.100
libavformat 54. 59.106 / 54. 59.106
libavdevice 54. 3.102 / 54. 3.102
libavfilter 3. 32.100 / 3. 32.100
libswscale 2. 1.103 / 2. 1.103
libswresample 0. 17.102 / 0. 17.102
[h264 @ 02FE2300] non-existing PPS referenced
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] no frame!
[h264 @ 02FE2300] non-existing PPS referenced
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] no frame!
[h264 @ 02FE2300] non-existing PPS referenced
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] no frame!
[h264 @ 02FE2300] non-existing PPS referenced
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] no frame!
[h264 @ 02FE2300] non-existing PPS referenced
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] no frame!
[h264 @ 02FE2300] non-existing PPS referenced
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] no frame!
[h264 @ 02FE2300] non-existing PPS referenced
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] no frame!
[h264 @ 02FE2300] non-existing PPS referenced
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] no frame!
[h264 @ 02FE2300] non-existing PPS referenced
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] no frame!
[h264 @ 02FE2300] non-existing PPS referenced
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] no frame!
[h264 @ 02FE2300] non-existing PPS referenced
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] no frame!
[h264 @ 02FE2300] non-existing PPS referenced
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] no frame!
[h264 @ 02FE2300] non-existing PPS referenced
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] no frame!
[h264 @ 02FE2300] non-existing PPS referenced
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] no frame!
[h264 @ 02FE2300] non-existing PPS referenced
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] no frame!
[h264 @ 02FE2300] non-existing PPS referenced
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] no frame!
[h264 @ 02FE2300] non-existing PPS referenced
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] no frame!
[h264 @ 02FE2300] non-existing PPS referenced
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] no frame!
[h264 @ 02FE2300] non-existing PPS referenced
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] no frame!
[h264 @ 02FE2300] non-existing PPS referenced
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] no frame!
[h264 @ 02FE2300] non-existing PPS referenced
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] no frame!
[h264 @ 02FE2300] non-existing PPS referenced
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] no frame!
[h264 @ 02FE2300] non-existing PPS referenced
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] no frame!
[h264 @ 02FE2300] non-existing PPS referenced
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] no frame!
[h264 @ 02FE2300] non-existing PPS referenced
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] non-existing PPS 0 referenced
[h264 @ 02FE2300] decode_slice_header error
[h264 @ 02FE2300] no frame!
[mpegts @ 02FB7260] Estimating duration from bitrate, this may be inaccurate
[h264 @ 0307CB40] Missing reference picture, default is 0
[h264 @ 0307CB40] decode_slice_header error
[h264 @ 0307CB40] Missing reference picture, default is 0
[h264 @ 0307CB40] decode_slice_header error
[h264 @ 0307CB40] Missing reference picture, default is 0
[h264 @ 0307CB40] decode_slice_header error
[h264 @ 0307CB40] Missing reference picture, default is 0
[h264 @ 0307CB40] decode_slice_header error
[h264 @ 0307CB40] concealing 3600 DC, 3600 AC, 3600 MV errors in P frame
[hls,applehttp @ 02FAE160] Estimating duration from bitrate, this may be inaccurate
Input #0, hls,applehttp, from 'http://svt12hls-lh.akamaihd.net/i/svt12hls_0@78144/index_6_av-b.m3u8?sd=10&rebase=on&e=1':
Duration: 00:00:00.10, start: 82768.697889, bitrate: 34 kb/s
Program 0
Metadata:
variant_bitrate : 0
Stream #0:0: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 25 tbr, 90k tbn, 180k tbc
Stream #0:1: Audio: aac ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 98 kb/s
Output #0, mpegts, to 'C:\Otto filer\Temp\s370test.ts':
Metadata:
encoder : Lavf54.59.106
Stream #0:0: Video: h264 ([27][0][0][0] / 0x001B), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 90k tbn, 90k tbc
Stream #0:1: Audio: aac ([15][0][0][0] / 0x000F), 48000 Hz, stereo, 98 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
Received signal 2: terminating.= 32720kB time=00:01:29.98 bitrate=2978.7kbits/s
So. A bunch of decode_slice_header_errors until the decoder "locks" on the live stream. Then it produces a nice ts-file which can NOT be played in WMP, but which plays nicely with VLC 2.0.4 for Windows.
I suggest you take this issue up in the transcoding forum instead. Perhaps zip needs to rethink the transcoding and delivery of HLS streams, which tends to come in 10 second chunks (with some garbage in the first chunk of up to 10 seconds).
So there, I'm doing what ottomatic suggested!