[FFmpeg-user] MPEG-4/WAV container for quick A/V sync tweaking
list at samalyse.com
Mon Apr 18 22:56:14 CEST 2011
On 04/18/2011 10:02 PM, Andrew Berg wrote:
> On 2011.04.18 02:42 PM, Olivier Guilyardi wrote:
>> Which container formats support an MPEG-4 video with a WAV audio stream? I'm
>> looking for a format which is supported by most players.
> AVI and Matroska. If by MPEG-4 video, you mean AVC/H.264, then I
> wouldn't recommend AVI.
Okay, yes H.264, not sure about AVC. Should be. Actually, the original data is
in a 3GP container, which FFmpeg reports as:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/VID_20110418_110132.3gp':
major_brand : 3gp4
minor_version : 768
Duration: 00:00:07.47, start: 0.000000, bitrate: 2033 kb/s
Stream #0.0(eng), 1, 1/24000: Video: mpeg4, yuv420p, 720x480 [PAR 1:1 DAR
3:2], 1/24, 2030 kb/s, 23.94 fps, 24 tbr, 24k tbn, 24 tbc
> Decent software players should have no problems with this, but very few
> hardware players would support this combination, even if the codecs and
> container are supported in other combinations.
If I understand correctly, it is pretty uncommon to have a compressed video
stream together with uncompressed audio.
>> Is there a such format which would allow to adjust the A/V sync offset very
>> quickly, by modifying a field in the header, without the need to copy or
>> transcode the whole file?
> Not sure if Matroska can specify an offset, but I know MP4 and MPEG-TS can.
Hmm, MP4 sounds good. But no WAV according to Wikipedia. MP3 is a bit too much
patent encumbered, but MP2 could do.
Can I use FFmpeg from the command line to:
1. mux the MPEG-4 data from a 3GP file together with a WAV file, with MP2
encoding, into an MP4 container? I would need pure video copy, no
decoding/encoding. FFmpeg would be compiled without H.264 support.
2. after 1. is done, adjust the sync offset in the MP4 container if I need to?
Or would I need to code my own header modification routine? Remember, I don't
want to copy the whole file, I want very quick A/V sync offset tweaking
I can't do step 2. during step 1. for UI reasons.
More information about the ffmpeg-user