[FFmpeg-user] ac3 frame sync errors mpegts->webm chunks

Sam Gardner lwnexgen at gmail.com
Wed Aug 3 18:15:09 EEST 2016


On Wed, Aug 3, 2016 at 10:07 AM, Carl Eugen Hoyos <ceffmpeg at gmail.com>
wrote:

> Hi!
>
> 2016-08-03 16:44 GMT+02:00 Sam Gardner <lwnexgen at gmail.com>:
> > This is a live stream from an old HDHomerun tuner speaking mpegts ; the
> > input isn't perfect but if I capture to a local .ts file it is in good
> > enough shape to play back, but I get the same results when encoding with
> > these settings from the local file.
>
> (Did you answer my question?)
>
> As said if you believe there is a bug (it sounds so) please provide your
> input sample.
>
> Please avoid top-posting here, thank you, Carl Eugen
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
>


Yes, the frame sync error is the last line when using the (eng) channel -
is there any way I can get more verbose output about what's going on? The
encode process just seems to hang.

I've attacted a file that exhibits all behavior - as you can see from the
earlier logs, an identically-compiled/configured ffmpeg 2.8.7 has the same
behavior on the same input.

Thanks for any help, and sorry for the earlier.
​
 capture.ts
<https://drive.google.com/file/d/0B4fu8KZMt9qnek9oeFFWaUszX0k/view?usp=drive_web>
​
Weirdly, if I switch to using the spanish audio stream with exactly the
same invocation, I can encode successfully:

Is it possible the audio from the english stream is too corrupted to deal
with? If so, since it plays back okay, is there any way that I can
pre-process it so that libvorbis or ffmpeg's ac3 can play nicely with it?

*Successful Logs*
*Invocation*
bin/hdhomerun_config 10391104 save /tuner0 - | /home/sam/bin/ffmpeg -i - *-map
i:0x31 *-pix_fmt yuv420p -c:v libvpx-vp9 -s 640x360 -keyint_min 60 -g 60
-speed 6 -tile-columns 4 -frame-parallel 1 -threads 8 -static-thresh 0
-max-intra-rate 300 -deadline realtime -lag-in-fr
ames 0 -error-resilient 1 -b:v 1000k -f webm_chunk -header
/var/www/html/webm_live/tuner_720.hdr -chunk_start_index 1
/var/www/html/webm_live/tuner_720_%d.chk *-map i:0x35* -c:a libvorbis -b:a
128k -af 'pan=stereo|c0=FL|c1=FR' -f webm_chunk -audio_chunk_duration 2000
-hea
der /var/www/html/webm_live/tuner_128.hdr -chunk_start_index 1
/var/www/html/webm_live/tuner_128_%d.chk

*Successful Output (just trust me that it's working okay - the input is in
bad shape but I can't figure out how to capture the logs in a way that's
gmail-readable)*
ffmpeg version N-81210-gfd4eb56 Copyright (c) 2000-2016 the FFmpeg
developers
  built with gcc 4.8.3 (GCC) 20140911 (Red Hat 4.8.3-7)
  configuration: --prefix=/home/sam/ffmpeg_build
--extra-cflags=-I/home/sam/ffmpeg_build/include
--extra-ldflags=-L/home/sam/ffmpeg_build/lib --bindir=/home/sam/bin
--pkg-config-flags=--static --enable-gpl --enable-nonfree
--enable-libfdk-aac --enable-libfreetype --enab
le-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx
--enable-libx264 --enable-libx265
  libavutil      55. 28.100 / 55. 28.100
  libavcodec     57. 51.100 / 57. 51.100
  libavformat    57. 44.100 / 57. 44.100
  libavdevice    57.  0.102 / 57.  0.102
  libavfilter     6. 49.100 /  6. 49.100
  libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  1.100 /  2.  1.100
  libpostproc    54.  0.100 / 54.  0.100
[mpeg2video @ 0x34bb980] Invalid frame dimensions 0x0.
...    Last message repeated 7 times
Input #0, mpegts, from 'pipe:':
  Duration: N/A, start: 91554.970322, bitrate: N/A
  Program 3
    Stream #0:0[0x31]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002),
yuv420p(tv), 1920x1080 [SAR 1:1 DAR 16:9], Closed Captions, 29.97 fps,
29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0:1[0x34](eng): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz,
5.1(side), fltp, 384 kb/s
    Stream #0:2[0x35](spa): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz,
stereo, fltp, 96 kb/s
[Parsed_pan_0 @ 0x36ffe80] Pure channel mapping detected: 0 1
[libvpx-vp9 @ 0x39ce920] v1.6.0
[webm_chunk @ 0x35184a0] Using AVStream.codec to pass codec parameters to
muxers is deprecated, use AVStream.codecpar instead.
[webm_chunk @ 0x34b3a40] Using AVStream.codec to pass codec parameters to
muxers is deprecated, use AVStream.codecpar instead.
Output #0, webm_chunk, to '/var/www/html/webm_live/tuner_720_%d.chk':
  Metadata:
    encoder         : Lavf57.44.100
    Stream #0:0: Video: vp9 (libvpx-vp9), yuv420p, 640x360 [SAR 1:1 DAR
16:9], q=-1--1, 1000 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc
    Metadata:
      encoder         : Lavc57.51.100 libvpx-vp9
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
Output #1, webm_chunk, to '/var/www/html/webm_live/tuner_128_%d.chk':
  Metadata:
    encoder         : Lavf57.44.100
    Stream #1:0(spa): Audio: vorbis (libvorbis), 48000 Hz, stereo, fltp,
128 kb/s
    Metadata:
      encoder         : Lavc57.51.100 libvorbis
Stream mapping:
  Stream #0:0 -> #0:0 (mpeg2video (native) -> vp9 (libvpx-vp9))
  Stream #0:2 -> #1:0 (ac3 (native) -> vorbis (libvorbis))
...

On Wed, Aug 3, 2016 at 9:44 AM, Sam Gardner <lwnexgen at gmail.com> wrote:

> Oh, my apologies, I got the same behavior with head - posted the wrong
> results. Here are those results:
>
> This is a live stream from an old HDHomerun tuner speaking mpegts ; the
> input isn't perfect but if I capture to a local .ts file it is in good
> enough shape to play back, but I get the same results when encoding with
> these settings from the local file.
>
> Note that I've updated the stream mapping so that I'm sure that I'm
> getting the right audio stream.
>
> Is there a way that I can get better output about the ac3 issue?
>
> *Invocation*
> bin/hdhomerun_config 10391104 save /tuner0 - | /home/sam/bin/ffmpeg -i - *-map
> i:0x31* -pix_fmt yuv420p -c:v libvpx-vp9 -s 640x360 -keyint_min 60 -g 60
> -speed 6 -tile-columns 4 -frame-parallel 1 -threads 8 -static-thresh 0
> -max-intra-rate 300 -deadline realtime -lag-in-frames 0 -error-resilient 1
> -b:v 1000k -f webm_chunk -header /var/www/html/webm_live/tuner_720.hdr
> -chunk_start_index 1 /var/www/html/webm_live/tuner_720_%d.chk *-map
> i:0x34* -c:a libvorbis -b:a 128k -af 'pan=stereo|c0=FL|c1=FR' -f
> webm_chunk -audio_chunk_duration 2000 -header
> /var/www/html/webm_live/tuner_128.hdr -chunk_start_index 1
> /var/www/html/webm_live/tuner_128_%d.chk
>
> *Output*
> ffmpeg version N-81210-gfd4eb56 Copyright (c) 2000-2016 the FFmpeg
> developers
>   built with gcc 4.8.3 (GCC) 20140911 (Red Hat 4.8.3-7)
>   configuration: --prefix=/home/sam/ffmpeg_build
> --extra-cflags=-I/home/sam/ffmpeg_build/include
> --extra-ldflags=-L/home/sam/ffmpeg_build/lib --bindir=/home/sam/bin
> --pkg-config-flags=--static --enable-gpl --enable-nonfree
> --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame
> --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264
> --enable-libx265
>   libavutil      55. 28.100 / 55. 28.100
>   libavcodec     57. 51.100 / 57. 51.100
>   libavformat    57. 44.100 / 57. 44.100
>   libavdevice    57.  0.102 / 57.  0.102
>   libavfilter     6. 49.100 /  6. 49.100
>   libswscale      4.  1.100 /  4.  1.100
>   libswresample   2.  1.100 /  2.  1.100
>   libpostproc    54.  0.100 / 54.  0.100
> [mpeg2video @ 0x2ed2980] Invalid frame dimensions 0x0.
> ...    Last message repeated 7 times
> Input #0, mpegts, from 'pipe:':
>   Duration: N/A, start: 91280.195389, bitrate: N/A
>   Program 3
>     Stream #0:0[0x31]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002),
> yuv420p(tv), 1920x1080 [SAR 1:1 DAR 16:9], Closed Captions, 29.97 fps,
> 29.97 tbr, 90k tbn, 59.94 tbc
>     Stream #0:1[0x34](eng): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz,
> 5.1(side), fltp, 384 kb/s
>     Stream #0:2[0x35](spa): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz,
> stereo, fltp, 96 kb/s
> [Parsed_pan_0 @ 0x33278c0] Pure channel mapping detected: 0 1
> [libvpx-vp9 @ 0x2eca240] v1.6.0
> [webm_chunk @ 0x3075880] Using AVStream.codec to pass codec parameters to
> muxers is deprecated, use AVStream.codecpar instead.
> [webm_chunk @ 0x2ecae40] Using AVStream.codec to pass codec parameters to
> muxers is deprecated, use AVStream.codecpar instead.
> Output #0, webm_chunk, to '/var/www/html/webm_live/tuner_720_%d.chk':
>   Metadata:
>     encoder         : Lavf57.44.100
>     Stream #0:0: Video: vp9 (libvpx-vp9), yuv420p, 640x360 [SAR 1:1 DAR
> 16:9], q=-1--1, 1000 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc
>     Metadata:
>       encoder         : Lavc57.51.100 libvpx-vp9
>     Side data:
>       cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
> Output #1, webm_chunk, to '/var/www/html/webm_live/tuner_128_%d.chk':
>   Metadata:
>     encoder         : Lavf57.44.100
>     Stream #1:0(eng): Audio: vorbis (libvorbis), 48000 Hz, stereo, fltp,
> 128 kb/s
>     Metadata:
>       encoder         : Lavc57.51.100 libvorbis
> Stream mapping:
>   Stream #0:0 -> #0:0 (mpeg2video (native) -> vp9 (libvpx-vp9))
>   Stream #0:1 -> #1:0 (ac3 (native) -> vorbis (libvorbis))
> [ac3 @ 0x2ed6060] frame sync error
> Error while decoding stream #0:1: Invalid data found when processing input
>
>


More information about the ffmpeg-user mailing list