I am receiving an HEVC encoded live stream that contains SMPTE 12-1 timecode in the SEI picture timing, as it is recommended in ITU-T Rec-H.265-202108 Annex D.3.3 Picture timing SEI message semantics. I want to copy this timecode to a new timecode stream in an MXF Container, according to EBU – Recommendation R 122.
I can use the command
ffprobe -i input.ts -show_frames to see the timecode information of each frame in a recording of such a stream:
TAG:timecode=09:06:19:01 [SIDE_DATA] side_data_type=SMPTE 12-1 timecode [TIMECODE] value=09:06:19:01 [/TIMECODE] [/SIDE_DATA]
But I have not found any way to access the SEI messages with FFmpeg. I already did a lot of research and tried playing around with things like:
-timecode 00:00:00:00 or
-map_metadata 0:s:0 without any luck. The only thing about SEI that I could find in the FFmpeg docs is the
sei_user_data, which is only used for insertion.
Is there any way to achieve this with FFmpeg and without writing C/C++ (or any other) code around libav*?