I have a Garmin 66W dashcam for my work (street mapping surveyor) which produces several 1min. MP4 videos of my journey (60 min. = 60 videos). All these videos have telemetry data on it as metadata (GPS location, speed, etc...).
I want to concatenate every 5 files excluding the audio but preserving the video and the telemetry in the metadata.
What I have tried:
- Export GPS information as GPX file (result: successful)
exiftool -p gpx.fmt -ee X:\video_place\videos_1m\GRMN0005.mp4 > GRMN0005.gpx
- Merge MP4 videos as a single MP4 video (result: partially successful)
ffmpeg -f concat -safe 0 -i X:\video_place\videos_1m\mylist.txt -c copy X:\video_place\videos_1m\GRMN0005to0011.mp4
When I use above command on ffmpeg I loose all my telemetry data.
I tried in several different ways for days, searching on several forums, I even tried to export all GPS data from each single 1min. file merge them, and them merge the videos and put the telemetry back.
The ffprobe output of my 1min. video is as following:
Metadata:
major_brand : avc1
minor_version : 0
compatible_brands: avc1isom
creation_time : 2021-07-26T17:08:23.000000Z
Duration: 00:01:00.06, start: 0.000000, bitrate: 19553 kb/s
Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080, 19182 kb/s, 29.97 fps, 29.97 tbr, 30k tbn (default)
Metadata:
creation_time : 2021-07-26T17:08:23.000000Z
handler_name : Ambarella AVC
vendor_id : [0][0][0][0]
encoder : Ambarella AVC encoder
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 128 kb/s (default)
Metadata:
creation_time : 2021-07-26T17:08:23.000000Z
handler_name : Ambarella AAC
vendor_id : [0][0][0][0]
Stream #0:2(eng): Subtitle: mov_text (text / 0x74786574), 0 kb/s (default)
Metadata:
creation_time : 2021-07-26T17:08:23.000000Z
handler_name : Ambarella EXT
When I use the ffmpeg code above to concatenate the videos, I get the following ffprobe without the telemetry:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'X:\video_place\videos_1m\GRMN0005to0011.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf59.4.100
Duration: 00:07:00.42, start: 0.000000, bitrate: 19313 kb/s
Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080, 19178 kb/s, 29.97 fps, 29.97 tbr, 30k tbn (default)
Metadata:
handler_name : Ambarella AVC
vendor_id : [0][0][0][0]
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 127 kb/s (default)
Metadata:
handler_name : Ambarella AAC
vendor_id : [0][0][0][0]
I have tried as well with following code, but none of them seems to work:
ffmpeg -f concat -safe 0 -i X:\video_place\videos_1m\mylist.txt -c copy -scodec copy X:\video_place\videos_1m\GRMN0005to0011_scodec.mp4
ffmpeg -f concat -safe 0 -i X:\video_place\videos_1m\mylist.txt -c:s copy -c:v copy X:\video_place\videos_1m\GRMN0005to0011.mp4
ffmpeg -f concat -safe 0 -i X:\video_place\videos_1m\mylist.txt -c copy -c:s mov_text X:\video_place\videos_1m\GRMN0005to0011.mp4
Can a good soul please guide me on how to perform this? I thought it was going to be simple...