[FFmpeg-user] Remuxing Into "aivx" MOV

Vincent Olivier vincent at up4.com
Wed Mar 12 14:46:57 CET 2014


Hi Bryce,

Thanks! It works with: av_opt_set_int(ofmt_ctx->priv_data, "video_track_timescale", in_stream->time_base.den, 0);

But: the FCPX-remuxed file (my reference) has a time_base.den 1000 times the value of the original (1/24000). If I set that value for the “video_track_timescale”, I get weird values for the avg_frame_rate equals to 24.01FPS). Is there a way to avoid that? For now I’ll leave it at that because it seems a definite progress over what I was getting before, but I’m just curious.

Thanks!

Vincent

On Mar 12, 2014, at 9:04 AM, Bryce McLeod <bryce.mcleod at codory.com> wrote:

> For 1) you can stop the mov muxer changing the time base by using its
> -video_track_timescale option, eg for 24fps content:
> 
> ffmpeg -i in.mxf -vcodec copy -acodec copy -f mov -video_track_timescale 24
> out.mov
> 
> Regards
> 
> On Wed, Mar 12, 2014 at 12:53 PM, Vincent Olivier <vincent at up4.com> wrote:
> 
>> Hi,
>> 
>> Starting from Stefano Sabatini's remuxin.c, I'm trying to remux an XAVC
>> video stream (AVC/H.264 High 4:2:2 Intra 10-bit) from a MXF file into a MOV
>> file made to look like the output of FCPX's own remuxing of the same source
>> file (codec tag "aivx"). Specifically, using the ffprobe -show_data
>> -show_streams command. I can see that there are still a couple of important
>> differences between what I can get with FFMPEG and the file produced by
>> FCPX (Final Cut Pro X 10.1). No matter what I try, it seems that the MOV
>> FFMPEG "format" remangles those values after I have specifically set them.
>> Namely, all for the video stream:
>> 
>> 1) time_base: I'm setting 1/24000 and I'm getting 1/12288
>> 
>> 2) extradata: here, I'm getting something mangled beyond recognition after
>> explicitly setting the target metadata to the source metadata with this
>> code:
>> 
>>        out_stream->codec->extradata = in_stream->codec->extradata;
>>        out_stream->codec->extradata_size =
>> in_stream->codec->extradata_size;
>> 
>> The other values (avg_frame_rate, duration, duration_ts) all seem to be
>> calculated from the time_base, so I will stick to those two for now. How to
>> deterministically set those values for a AVC/H.264 video stream to be muxed
>> into a MOV file with FFMPEG?
>> 
>> Thanks!
>> 
>> Vincent
>> 
>> Here is the FFMPEG version I'm using on Mac OS X 10.9.2:
>> 
>> ffmpeg version 2.1.git-ffb7d71
>> built on Mar  4 2014 08:48:40 with Apple LLVM version 5.0 (clang-500.2.79)
>> (based on LLVM 3.3svn)
>> configuration: --prefix=/opt/local --enable-swscale --enable-avfilter
>> --enable-avresample --enable-libmp3lame --enable-libvorbis --enable-libopus
>> --enable-libtheora --enable-libschroedinger --enable-libopenjpeg
>> --enable-libmodplug --enable-libvpx --enable-libspeex --enable-libass
>> --enable-libbluray --enable-gnutls --enable-fontconfig --enable-libfreetype
>> --disable-indev=jack --disable-outdev=xv --mandir=/opt/local/share/man
>> --enable-shared --enable-pthreads --cc=/usr/bin/clang --arch=x86_64
>> --enable-yasm --enable-gpl --enable-postproc --enable-libx264
>> --enable-libxvid --enable-nonfree --enable-libfdk-aac --enable-libfaac
>> libavutil      52. 66.100 / 52. 66.100
>> libavcodec     55. 52.102 / 55. 52.102
>> libavformat    55. 33.100 / 55. 33.100
>> libavdevice    55. 10.100 / 55. 10.100
>> libavfilter     4.  2.100 /  4.  2.100
>> libavresample   1.  2.  0 /  1.  2.  0
>> libswscale      2.  5.101 /  2.  5.101
>> libswresample   0. 18.100 /  0. 18.100
>> libpostproc    52.  3.100 / 52.  3.100
>> _______________________________________________
>> ffmpeg-user mailing list
>> ffmpeg-user at ffmpeg.org
>> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>> 
>> 
> 
> 
> -- 
> Bryce McLeod
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user



More information about the ffmpeg-user mailing list