According to this question: Segmenting a video results in incorrect timecode data I should have used -reset_timestamps 1 . But I didn’t.
How do I join the segmented video correctly now?
I have 62 files every file is 10 minute recording.
$ ll
dr-xr-xr-x 2 kamil kamil 4096 03-16 11:06 ./
drwxr-xr-x 5 kamil kamil 4096 03-16 20:41 ../
-r--r--r-- 1 kamil kamil 244940024 03-15 23:49 output_20250315T233932.mkv
-r--r--r-- 1 kamil kamil 270246141 03-16 00:00 output_20250315T234942.mkv
-r--r--r-- 1 kamil kamil 260062611 03-16 00:10 output_20250316T000006.mkv
-r--r--r-- 1 kamil kamil 253810022 03-16 00:20 output_20250316T001006.mkv
-r--r--r-- 1 kamil kamil 251295051 03-16 00:30 output_20250316T002006.mkv
... etc ...
$ ffprobe recorded/output_20250315T233932.mkv
ffprobe version n7.1 Copyright (c) 2007-2024 the FFmpeg developers
built with gcc 14.2.1 (GCC) 20250207
configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto --enable-fontconfig --enable-frei0r --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libdav1d --enable-libdrm --enable-libdvdnav --enable-libdvdread --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgsm --enable-libharfbuzz --enable-libiec61883 --enable-libjack --enable-libjxl --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libplacebo --enable-libpulse --enable-librav1e --enable-librsvg --enable-librubberband --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpl --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-nvdec --enable-nvenc --enable-opencl --enable-opengl --enable-shared --enable-vapoursynth --enable-version3 --enable-vulkan
libavutil 59. 39.100 / 59. 39.100
libavcodec 61. 19.100 / 61. 19.100
libavformat 61. 7.100 / 61. 7.100
libavdevice 61. 3.100 / 61. 3.100
libavfilter 10. 4.100 / 10. 4.100
libswscale 8. 3.100 / 8. 3.100
libswresample 5. 3.100 / 5. 3.100
libpostproc 58. 3.100 / 58. 3.100
Input #0, matroska,webm, from 'recorded/output_20250315T233932.mkv':
Metadata:
ENCODER : Lavf61.7.100
Duration: 00:10:00.40, start: 0.397000, bitrate: 3263 kb/s
Stream #0:0: Video: h264 (High 4:2:2), yuv422p(tv, progressive), 1280x720, 5 fps, 5 tbr, 1k tbn
Metadata:
ENCODER : Lavc61.19.100 libx264
DURATION : 00:10:00.400000000
Stream #0:1: Audio: vorbis, 48000 Hz, stereo, fltp
Metadata:
ENCODER : Lavc61.19.100 libvorbis
DURATION : 00:10:00.017000000
$ ffprobe recorded/output_20250316T000006.mkv
ffprobe version n7.1 Copyright (c) 2007-2024 the FFmpeg developers
built with gcc 14.2.1 (GCC) 20250207
configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto --enable-fontconfig --enable-frei0r --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libdav1d --enable-libdrm --enable-libdvdnav --enable-libdvdread --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgsm --enable-libharfbuzz --enable-libiec61883 --enable-libjack --enable-libjxl --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libplacebo --enable-libpulse --enable-librav1e --enable-librsvg --enable-librubberband --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpl --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-nvdec --enable-nvenc --enable-opencl --enable-opengl --enable-shared --enable-vapoursynth --enable-version3 --enable-vulkan
libavutil 59. 39.100 / 59. 39.100
libavcodec 61. 19.100 / 61. 19.100
libavformat 61. 7.100 / 61. 7.100
libavdevice 61. 3.100 / 61. 3.100
libavfilter 10. 4.100 / 10. 4.100
libswscale 8. 3.100 / 8. 3.100
libswresample 5. 3.100 / 5. 3.100
libpostproc 58. 3.100 / 58. 3.100
Input #0, matroska,webm, from 'recorded/output_20250316T000006.mkv':
Metadata:
ENCODER : Lavf61.7.100
Duration: 00:30:24.40, start: 1224.007000, bitrate: 1140 kb/s
Stream #0:0: Video: h264 (High 4:2:2), yuv422p(tv, progressive), 1280x720, 5 fps, 5 tbr, 1k tbn
Metadata:
ENCODER : Lavc61.19.100 libx264
DURATION : 00:30:24.400000000
Stream #0:1: Audio: vorbis, 48000 Hz, stereo, fltp
Metadata:
ENCODER : Lavc61.19.100 libvorbis
DURATION : 00:30:24.011000000
I tried the following:
ffmpeg -f concat -i mylist.txt -fps_mode drop -map 0:v -vcodec copy output_good_timestamps.mp4
But still the timestmaps is incorrect and the file is 300 hours long. It should be just ~10 hours.
$ ffprobe output_good_timestamps.mp4
ffprobe version n7.1 Copyright (c) 2007-2024 the FFmpeg developers
built with gcc 14.2.1 (GCC) 20250207
configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto --enable-fontconfig --enable-frei0r --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libdav1d --enable-libdrm --enable-libdvdnav --enable-libdvdread --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgsm --enable-libharfbuzz --enable-libiec61883 --enable-libjack --enable-libjxl --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libplacebo --enable-libpulse --enable-librav1e --enable-librsvg --enable-librubberband --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpl --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-nvdec --enable-nvenc --enable-opencl --enable-opengl --enable-shared --enable-vapoursynth --enable-version3 --enable-vulkan
libavutil 59. 39.100 / 59. 39.100
libavcodec 61. 19.100 / 61. 19.100
libavformat 61. 7.100 / 61. 7.100
libavdevice 61. 3.100 / 61. 3.100
libavfilter 10. 4.100 / 10. 4.100
libswscale 8. 3.100 / 8. 3.100
libswresample 5. 3.100 / 5. 3.100
libpostproc 58. 3.100 / 58. 3.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5d7590f83500] CTTS invalid
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output_good_timestamps.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf61.7.100
Duration: 315:38:07.58, start: 0.003000, bitrate: 102 kb/s
Stream #0:0[0x1](und): Video: h264 (High 4:2:2) (avc1 / 0x31637661), yuv422p(progressive), 1280x720, 102 kb/s, 0.16 fps, 5 tbr, 16k tbn (default)
Metadata:
handler_name : VideoHandler
vendor_id : [0][0][0][0]
encoder : Lavc61.19.100 libx264