[FFmpeg-trac] #4768(ffmpeg:new): FFmpeg preserving CFR during TS to MP4 conversion
FFmpeg
trac at avcodec.org
Tue Aug 11 16:58:48 CEST 2015
#4768: FFmpeg preserving CFR during TS to MP4 conversion
--------------------------------+---------------------------------------
Reporter: zer0z | Type: enhancement
Status: new | Priority: normal
Component: ffmpeg | Version: 1.0.10
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
--------------------------------+---------------------------------------
Summary of the bug: Problem due to technical limitation of TS format,
duration are rounded and this rounding is not detected during TS to MP4
(not a bug, only a lack of feature). Instead FFmpeg should detect the CFR
in TS to MP4 conversion and create a CFR stts atom. Instead of the actual
stts (time table) atom which takes lot of space and which is not CFR
stricly speaking.
I convert MP4 to TS, which has a hard coded (spec) frequency of 90 000 Hz.
ffmpeg converts it as it can, with some rounding (in my time time line:
sometime 3754, sometime 3753, but the real duration should be 3753.75, and
Ts accepts no decimal).
Then I convert it back to MP4, and ffmpeg does not understand it is CFR,
so it provides the same rounding. Resultant file ends up as VFR.
How to reproduce:
From ffmpeg wiki:
If you have MP4 files, these could be losslessly concatenated by first
transcoding them to mpeg transport streams. With h.264 video and AAC
audio, the following can be used:
ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts
intermediate1.ts
ffmpeg -i input2.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts
intermediate2.ts
ffmpeg -i "concat:intermediate1.ts|intermediate2.ts" -c copy -bsf:a
aac_adtstoasc output.mp4
I convert 1.mp4, 2.mp4, 3.mp4 (all encoded at CFR) with above method to
.ts. Then issue:
ffmpeg -i "concat:1.ts|2.ts|3.ts" -c copy -bsf:a aac_adtstoasc merged.mp4
Due to the above issue the result from concat will be VFR:
Frame rate mode : Variable
Frame rate : 23.976 fps
Minimum frame rate : 23.968 fps
Maximum frame rate : 23.981 fps
If this can be looked into and hopefully resolved to preserve the Constant
frame rate I would really appreciate it.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/4768>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list