[FFmpeg-user] How to change audio stream offset

Francois Visagie francois.visagie at gmail.com
Sat Sep 7 18:43:35 CEST 2013


> -----Original Message-----
> From: ffmpeg-user-bounces at ffmpeg.org [mailto:ffmpeg-user-
> bounces at ffmpeg.org] On Behalf Of Carl Eugen Hoyos
> Sent: 06 September 2013 17:08
> To: ffmpeg-user at ffmpeg.org
> Subject: Re: [FFmpeg-user] How to change audio stream offset
> 
> Francois Visagie <francois.visagie <at> gmail.com> writes:
> 
> > C:\Users\fvisagie\Videos\My DVDs\MainMovie\Neil Diamond Live at the
> > Greek\VIDEO_TS\SPLITS>ffmpeg -i VTS_01_1.001.VOB -filter:a
> > aformat=channel_layouts=stereo -p reset ultrafast bbb.mp4
> 
> Is this only reproducible using external libraries or also with -vcodec
mpeg4 -
> acodec aac -strict -2 ?

Using the internal codecs now makes no difference.

> (Unrelated: Note that the native aac encoder is said to produce better
quality
> than libvo_aacenc.)

With the inputs I've tested on so far, when down-mixed my (non-audiophile)
ears can't distinguish between the outputs of the two. Still, -c:a aac
seemed to have the advantage that it can produce multi-channel output, but
the one such test I did sounded so terrible I immediately gave up on it.

> [...]
> 
> > Adding '-async 1' to the original batch encode command line prevents
> > this behaviour. However, it also makes some encodes ~10% longer than
> > their input
> 
> Could you elaborate, I don't understand what gets longer?

My apologies, I can see that isn't very clear. I meant that using '-async 1'
in some cases makes the output file duration ~10% longer than the
corresponding input. The Matrix is one example.

Getting back to the root problem here (output AV being offset in other
players), when I open the problem input with FFMS2 (which I think uses libav
or some kind of ffmpeg code?) and frameserve with Avisynth:

ffmpeg -i VTS_01_1.001.avs -filter:a aformat=channel_layouts=stereo -preset
ultrafast bbb.mp4

Content of VTS_01_1.001.avs:
    Source = " VTS_01_1.001.VOB"
    FFIndex(source=source)
    audio = FFAudioSource(source=source)
    video = FFVideoSource(source=source)
    return(AudioDub(video, audio))

the result is the same. So the problem seems to be with the muxing?

Avisynth also frameserves the output file with audio too early by 650ms.

Taking everything into account, it seems the only way to fix the AV offset
is to spend re-encode all problem outputs with '-async 1' at around 5h each?



More information about the ffmpeg-user mailing list