[FFmpeg-user] Robustness on processing transport streams (TS)?

Uwe Freese uwe.freese at gmx.de
Thu Dec 27 16:14:31 EET 2018


Hello,

how robust and precise especially regarding a/v sync is ffmpeg when 
processing transport streams (*.ts) files from TV recordings?

Some programs (e.g. Avidemux on Linux) have problems (crash) with some 
*.ts files I have, and I thought it maybe is a good idea to first 
convert my input to a "raw" file with:

ffmpeg -i input.ts -map 0:v:0 -c:v huffyuv -map 0:a -c:a pcm_s16le -sn 
temp.mkv

and use that hopefully "corrected" version for further processing (and 
encoding).


Question is, does ffmpeg a good job detecting gaps and errors and fill 
out the produces audio streams with silence etc, so they stay in sync?

I mean, when I play whatever corrupt file in VLC, it does a good job in 
this. How is it in ffmpeg?

Any other program that someone suggests to (pre)process and "correct" 
such ts files under Linux?


Some example output I had for a TV recording (which is not from a bad 
reception or so - it's totally ok when playing it back):

$ ffmpeg -i input.ts -map 0:v:0 -c:v huffyuv -map 0:a -c:a pcm_s16le -sn 
temp.mkv
ffmpeg version 3.2.12-1~deb9u1 Copyright (c) 2000-2018 the FFmpeg developers
   built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
   configuration: --prefix=/usr --extra-version='1~deb9u1' 
--toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu 
--incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping 
--enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa 
--enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca 
--enable-libcdio --enable-libebur128 --enable-libflite 
--enable-libfontconfig --enable-libfreetype --enable-libfribidi 
--enable-libgme --enable-libgsm --enable-libmp3lame --enable-libopenjpeg 
--enable-libopenmpt --enable-libopus --enable-libpulse 
--enable-librubberband --enable-libshine --enable-libsnappy 
--enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora 
--enable-libtwolame --enable-libvorbis --enable-libvpx 
--enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid 
--enable-libzmq --enable-libzvbi --enable-omx --enable-openal 
--enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libiec61883 
--enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 
--enable-shared
   libavutil      55. 34.101 / 55. 34.101
   libavcodec     57. 64.101 / 57. 64.101
   libavformat    57. 56.101 / 57. 56.101
   libavdevice    57.  1.100 / 57.  1.100
   libavfilter     6. 65.100 /  6. 65.100
   libavresample   3.  1.  0 /  3.  1.  0
   libswscale      4.  2.100 /  4.  2.100
   libswresample   2.  3.100 /  2.  3.100
   libpostproc    54.  1.100 / 54.  1.100
[h264 @ 0x558e3216ee00] SPS unavailable in decode_picture_timing
[h264 @ 0x558e3216ee00] non-existing PPS 0 referenced
[h264 @ 0x558e3216ee00] SPS unavailable in decode_picture_timing
[h264 @ 0x558e3216ee00] non-existing PPS 0 referenced
[h264 @ 0x558e3216ee00] decode_slice_header error
[h264 @ 0x558e3216ee00] no frame!
[h264 @ 0x558e3216ee00] SPS unavailable in decode_picture_timing
[h264 @ 0x558e3216ee00] non-existing PPS 0 referenced
[h264 @ 0x558e3216ee00] SPS unavailable in decode_picture_timing
[h264 @ 0x558e3216ee00] non-existing PPS 0 referenced
[h264 @ 0x558e3216ee00] decode_slice_header error
[h264 @ 0x558e3216ee00] no frame!
[h264 @ 0x558e3216ee00] SPS unavailable in decode_picture_timing
[h264 @ 0x558e3216ee00] non-existing PPS 0 referenced
[h264 @ 0x558e3216ee00] SPS unavailable in decode_picture_timing
[h264 @ 0x558e3216ee00] non-existing PPS 0 referenced
[h264 @ 0x558e3216ee00] decode_slice_header error
[h264 @ 0x558e3216ee00] no frame!
[h264 @ 0x558e3216ee00] SPS unavailable in decode_picture_timing
[h264 @ 0x558e3216ee00] non-existing PPS 0 referenced
[h264 @ 0x558e3216ee00] SPS unavailable in decode_picture_timing
[h264 @ 0x558e3216ee00] non-existing PPS 0 referenced
[h264 @ 0x558e3216ee00] decode_slice_header error
[h264 @ 0x558e3216ee00] no frame!
[h264 @ 0x558e3216ee00] SPS unavailable in decode_picture_timing
[h264 @ 0x558e3216ee00] non-existing PPS 0 referenced
[h264 @ 0x558e3216ee00] SPS unavailable in decode_picture_timing
[h264 @ 0x558e3216ee00] non-existing PPS 0 referenced
[h264 @ 0x558e3216ee00] decode_slice_header error
[h264 @ 0x558e3216ee00] no frame!
[h264 @ 0x558e3216ee00] SPS unavailable in decode_picture_timing
[h264 @ 0x558e3216ee00] non-existing PPS 0 referenced
[h264 @ 0x558e3216ee00] SPS unavailable in decode_picture_timing
[h264 @ 0x558e3216ee00] non-existing PPS 0 referenced
[h264 @ 0x558e3216ee00] decode_slice_header error
[h264 @ 0x558e3216ee00] no frame!
[h264 @ 0x558e3216ee00] SPS unavailable in decode_picture_timing
[h264 @ 0x558e3216ee00] non-existing PPS 0 referenced
[h264 @ 0x558e3216ee00] SPS unavailable in decode_picture_timing
[h264 @ 0x558e3216ee00] non-existing PPS 0 referenced
[h264 @ 0x558e3216ee00] decode_slice_header error
[h264 @ 0x558e3216ee00] no frame!
[h264 @ 0x558e3216ee00] SPS unavailable in decode_picture_timing
[h264 @ 0x558e3216ee00] non-existing PPS 0 referenced
[h264 @ 0x558e3216ee00] SPS unavailable in decode_picture_timing
[h264 @ 0x558e3216ee00] non-existing PPS 0 referenced
[h264 @ 0x558e3216ee00] decode_slice_header error
[h264 @ 0x558e3216ee00] no frame!
[h264 @ 0x558e3216ee00] SPS unavailable in decode_picture_timing
[h264 @ 0x558e3216ee00] non-existing PPS 0 referenced
[h264 @ 0x558e3216ee00] SPS unavailable in decode_picture_timing
[h264 @ 0x558e3216ee00] non-existing PPS 0 referenced
[h264 @ 0x558e3216ee00] decode_slice_header error
[h264 @ 0x558e3216ee00] no frame!
[h264 @ 0x558e3216ee00] SPS unavailable in decode_picture_timing
[h264 @ 0x558e3216ee00] non-existing PPS 0 referenced
[h264 @ 0x558e3216ee00] SPS unavailable in decode_picture_timing
[h264 @ 0x558e3216ee00] non-existing PPS 0 referenced
[h264 @ 0x558e3216ee00] decode_slice_header error
[h264 @ 0x558e3216ee00] no frame!
[mpegts @ 0x558e32145f60] PES packet size mismatch
     Last message repeated 3 times
[mpegts @ 0x558e32145f60] Could not find codec parameters for stream 0 
(Unknown: none ([5][0][0][0] / 0x0005)): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' 
options
[mpegts @ 0x558e32145f60] Could not find codec parameters for stream 1 
(Unknown: none ([11][0][0][0] / 0x000B)): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' 
options
[mpegts @ 0x558e32145f60] Could not find codec parameters for stream 2 
(Unknown: none ([12][0][0][0] / 0x000C)): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' 
options
[mpegts @ 0x558e32145f60] Could not find codec parameters for stream 9 
(Unknown: none ([11][0][0][0] / 0x000B)): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' 
options
Input #0, mpegts, from 'Ohnsorg-Theater - Die Kartenlegerin.ts':
   Duration: 03:00:01.26, start: 25628.222800, bitrate: 13827 kb/s
   Program 10325
   Program 10326
   Program 10327
     Stream #0:0[0x6ea]: Unknown: none ([5][0][0][0] / 0x0005)
     Stream #0:1[0x87b]: Unknown: none ([11][0][0][0] / 0x000B)
     Stream #0:2[0xa74]: Unknown: none ([12][0][0][0] / 0x000C)
     Stream #0:3[0x1465]: Video: h264 (High) ([27][0][0][0] / 0x001B), 
yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 50 fps, 50 tbr, 90k 
tbn, 100 tbc
     Stream #0:4[0x1466](deu): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 
Hz, stereo, s16p, 192 kb/s
     Stream #0:5[0x1467](mis): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 
Hz, stereo, s16p, 192 kb/s
     Stream #0:6[0x1468](deu): Subtitle: dvb_teletext ([6][0][0][0] / 
0x0006)
     Stream #0:7[0x1469](deu): Subtitle: dvb_subtitle ([6][0][0][0] / 
0x0006) (hearing impaired)
     Stream #0:8[0x146a](deu): Audio: ac3 ([6][0][0][0] / 0x0006), 48000 
Hz, stereo, fltp, 448 kb/s
     Stream #0:9[0x1499]: Unknown: none ([11][0][0][0] / 0x000B)
   Program 10328
   Program 10329
   Program 10330
   Program 10331
[huffyuv @ 0x558e3241e960] using huffyuv 2.2.0 or newer interlacing flag
[huffyuv @ 0x558e32527940] using huffyuv 2.2.0 or newer interlacing flag
[huffyuv @ 0x558e32630820] using huffyuv 2.2.0 or newer interlacing flag
[huffyuv @ 0x558e32739700] using huffyuv 2.2.0 or newer interlacing flag
[huffyuv @ 0x558e321fe620] using huffyuv 2.2.0 or newer interlacing flag
Output #0, matroska, to 'video_encode_input.mkv':
   Metadata:
     encoder         : Lavf57.56.101
     Stream #0:0: Video: huffyuv (HFYU / 0x55594648), yuv422p, 1280x720 
[SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 50 fps, 1k tbn, 50 tbc
     Metadata:
       encoder         : Lavc57.64.101 huffyuv
     Stream #0:1(deu): Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 
Hz, stereo, s16, 1536 kb/s
     Metadata:
       encoder         : Lavc57.64.101 pcm_s16le
     Stream #0:2(mis): Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 
Hz, stereo, s16, 1536 kb/s
     Metadata:
       encoder         : Lavc57.64.101 pcm_s16le
     Stream #0:3(deu): Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 
Hz, stereo, s16, 1536 kb/s
     Metadata:
       encoder         : Lavc57.64.101 pcm_s16le
Stream mapping:
   Stream #0:3 -> #0:0 (h264 (native) -> huffyuv (native))
   Stream #0:4 -> #0:1 (mp2 (native) -> pcm_s16le (native))
   Stream #0:5 -> #0:2 (mp2 (native) -> pcm_s16le (native))
   Stream #0:8 -> #0:3 (ac3 (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
[h264 @ 0x558e321b08c0] co located POCs unavailable
[h264 @ 0x558e321b3060] co located POCs unavailable
[h264 @ 0x558e323c7200] co located POCs unavailable
[h264 @ 0x558e323e2aa0] co located POCs unavailable
[mpegts @ 0x558e32145f60] PES packet size mismatch:15:18.54 
bitrate=291523.3kbits/s speed=3.17x
[h264 @ 0x558e323e2aa0] concealing 2831 DC, 2831 AC, 2831 MV errors in P 
frame
[ac3 @ 0x558e3220b520] exponent -1 is out-of-range
[ac3 @ 0x558e3220b520] error decoding the audio block
[ac3 @ 0x558e3220b520] frame sync error
Error while decoding stream #0:8: Invalid data found when processing input
[h264 @ 0x558e323fe500] co located POCs unavailable
[h264 @ 0x558e321b08c0] co located POCs unavailable
[h264 @ 0x558e321b3060] co located POCs unavailable
[h264 @ 0x558e323c7200] co located POCs unavailable
[h264 @ 0x558e323e2aa0] co located POCs unavailable
[h264 @ 0x558e323fe500] co located POCs unavailable
[h264 @ 0x558e321b08c0] co located POCs unavailable
[mpegts @ 0x558e32145f60] PES packet size mismatch
     Last message repeated 2 times
[h264 @ 0x558e321b3060] concealing 1505 DC, 1505 AC, 1505 MV errors in P 
frame
[ac3 @ 0x558e3220b520] exponent 25 is out-of-range
[ac3 @ 0x558e3220b520] error decoding the audio block
[ac3 @ 0x558e3220b520] frame sync error
Error while decoding stream #0:8: Invalid data found when processing input
Past duration 0.813881 too large
[mp2 @ 0x558e321fdd00] Header missing
Error while decoding stream #0:4: Invalid data found when processing input
[mp2 @ 0x558e3218aca0] Header missing
Error while decoding stream #0:5: Invalid data found when processing input
[mpegts @ 0x558e32145f60] PES packet size mismatch:15:19.92 
bitrate=291724.4kbits/s speed=3.17x
     Last message repeated 1 times
[h264 @ 0x558e323fe500] concealing 3071 DC, 3071 AC, 3071 MV errors in B 
frame
[h264 @ 0x558e321b08c0] co located POCs unavailable
[h264 @ 0x558e321b3060] co located POCs unavailable
[mpegts @ 0x558e32145f60] PES packet size mismatch
[ac3 @ 0x558e3220b520] frame sync error
Error while decoding stream #0:8: Invalid data found when processing input
[h264 @ 0x558e323c7200] co located POCs unavailable
[h264 @ 0x558e323e2aa0] co located POCs unavailable
[mp2 @ 0x558e321fdd00] Header missing
Error while decoding stream #0:4: Invalid data found when processing input
[mp2 @ 0x558e3218aca0] Header missing
Error while decoding stream #0:5: Invalid data found when processing input

...

Regards,
Uwe



More information about the ffmpeg-user mailing list