Keeping timecode when concating videos

Arturs Valenieks arturs.valenieks at gmail.com
Wed Feb 24 15:07:32 UTC 2021


Hi,

I have a pipeline where I record segments of video with current time as
timecode:

> gst-launch-1.0 videotestsrc pattern=18 is-live=true ! timecodestamper
> first-timecode="17:30:04:09" ! timeoverlay time-mode=time-code !
> videoconvert ! x264enc ! splitmuxsink location=video%05d.mov
> max-size-time=5000000000 message-forward=true send-keyframe-requests=true
> muxer=qtmux


And then I have a pipeline where I combine these small video files into one
larger file:

> gst-launch-1.0 splitmuxsrc location=video*.mov ! splitmuxsink
> location=combined.mov muxer=qtmux

or

> gst-launch-1.0 splitmuxsrc location=video*.mov name=splitsrc
> splitsrc.video_0 ! queue ! "video/x-h264" ! qtmux ! filesink
> location=combined.mov


But when I combine the files my timecode gets lost. I can check it with
ffprobe that metadata includes timecode and that there is tmcd track in
the small files, but none of that is present in the combined file.

I started digging and figured that only way that I could add timecode for
my combined file is decoding the file adding the timecodestamper with a
timecode of first video file, since timecodestamper accepts only
video/x-raw, but files contain video/x-h264.

Other solution I found is with ffmpeg copy combined video and update
timecode:

> ffmpeg -i combined.mov -map 0 -c copy -timecode "17:30:04:09"
> combined-with-timecode.mov
>

Is there some way I could add/pass timecode when concating video files?
Is there a gstreamer approach on how to add timecode without reencoding the
video stream?

Cheers,
Arturs
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20210224/97f96abe/attachment.htm>


More information about the gstreamer-devel mailing list