[FFmpeg-trac] #10607(undetermined:new): Remuxing MXF to MOV without re-encoding cannot find timecode framerate on some source files
FFmpeg
trac at avcodec.org
Tue Oct 17 14:33:49 EEST 2023
#10607: Remuxing MXF to MOV without re-encoding cannot find timecode framerate on
some source files
-------------------------------------+-------------------------------------
Reporter: | Owner: (none)
electron.rotoscope |
Type: defect | Status: new
Priority: normal | Component:
| undetermined
Version: git-master | Resolution:
Keywords: mxf mov | Blocked By:
timecode |
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Comment (by Tomas Härdin):
This is due to movenc.c using avg_frame_rate for timecode rate, which it
shouldn't. See mov_check_timecode_track(). avg_frame_rate relies on
heuristics which is why you're finding the behavior hard to trigger. The
fundamental issue is due to lavf passing timecode data around in metadata
strings.
Short debugging log:
Does mxf_read_timecode_component() pick up !RoundedTimecodeBase? Yes.
Does av_timecode_init() get the !RoundedTimecodeBase? Yes, in the second
call to av_timecode_init() in mxf_parse_structural_metadata() (line 2699).
So the issue is not in mxfdec per se, and movenc is definitely wrong.
!RoundedTimecodeBase should be passed unaltered from demuxer to muxer in
case of stream copy and also in case of transcoding. If frame rate is
changed then the metadata should be dropped and the user required to
explicitly specify what the timecode data should be. Side data might be a
more appropriate mechanism for timecodes.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/10607#comment:1>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list