2

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...

1 Answer 1

1

add the tag operator and read the file in as text format.

ffmpeg \
    -y -f concat -i test.txt -c copy \
    -map 0:v -map 0:a -map 0:3 \
    -copy_unknown -tag:2 gpmd \
    test2.mp4

otherwise something like this might do the trick: http://www.dashware.net/how-it-works/

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.