Merge Go Pro generated chaptered files into a single file
β― tree 00:41:57
.
βββ raw
βββ GH010307.MP4
βββ GH010308.MP4
βββ GH010309.MP4
βββ GH010310.MP4
βββ GH010314.MP4
βββ GH010315.MP4
βββ GH010316.MP4
βββ GH010317.MP4
βββ GH010318.MP4
βββ GH020308.MP4
βββ GH020314.MP4
βββ GH020316.MP4
βββ GH020317.MP4
βββ GH030314.MP4
βββ GH030316.MP4
βββ GH030317.MP4
βββ GH030318.MP4
βββ GH040317.MP4
βββ GH040318.MP4
βββ GH050317.MP4
βββ GH050318.MP4
βββ GH060317.MP4
βββ GH060318.MP4
βββ GOPR0311.JPG
βββ GOPR0312.JPG
βββ GOPR0313.JPG
1 directory, 26 files
β― tree 00:42:02
.
βββ GH000307.MP4
βββ GH000308.MP4
βββ GH000309.MP4
βββ GH000310.MP4
βββ GH000314.MP4
βββ GH000315.MP4
βββ GH000316.MP4
βββ GH000317.MP4
βββ GH000318.MP4
βββ raw
βββ GH010307.MP4
βββ GH010308.MP4
βββ GH010309.MP4
βββ GH010310.MP4
βββ GH010314.MP4
βββ GH010315.MP4
βββ GH010316.MP4
βββ GH010317.MP4
βββ GH010318.MP4
βββ GH020308.MP4
βββ GH020314.MP4
βββ GH020316.MP4
βββ GH020317.MP4
βββ GH030314.MP4
βββ GH030316.MP4
βββ GH030317.MP4
βββ GH030318.MP4
βββ GH040317.MP4
βββ GH040318.MP4
βββ GH050317.MP4
βββ GH050318.MP4
βββ GH060317.MP4
βββ GH060318.MP4
βββ GOPR0311.JPG
βββ GOPR0312.JPG
βββ GOPR0313.JPG
1 directory, 35 files
The tables have been built from the following GoPro Camera File Naming Convention page.
Recording type | Example | Supported |
---|---|---|
Single Video | GH011234.mp4,GX011234.mp4 | β |
Chaptered Video | GH011234.mp4,GH021234.mp4 | β |
Looping Video | GHAA0001.mp4,GHAA0002.mp4 | β |
Recording type | Example | Supported |
---|---|---|
Video | GS012345.360 | β |
TimeWarp | GS012345.360 | β |
Photo | GS_1234.jpeg | β |
PowerPano | GP_1234.jpeg | β |
Recording type | Example | Supported |
---|---|---|
Video | GH012345.mp4 | β |
TimeWarp | GH012345.mp4 | β |
Photo | GS_1234.jpeg | β |
TimeLapse Video | GH012345.mp4 | β |
TimeLapse Photo | GPAA_1234.jpeg | β |
Recording type | Example | Supported |
---|---|---|
Single Video | GPFR0001.mp4 | β |
Chaptered Video | GPFR0002.mp4,GF010002.mp4,GPBK0002.mp4,GB010002.mp4 | β |
Single Photo | GPFR0003.mp4,GPBK0004.mp4 | β |
Recording type | Example | Supported |
---|---|---|
Single Video | GOPR1234.mp4 | β |
Chaptered Video | GOPR1234.mp4,GP011234.mp4,GP021234.mp4 | β |
Single Photo | GOPR0002.jpg | β |
Burst, Time-Lapse Photo, Looping Video | G0231111.jpg β G0231120.jpg, G0241121.jpg β G0241221.jpg | β |
3D Recording | 3D_L0002.mp4,3D_R0002.mp4,3D_L1234.jpg,3D_R1234.jpg | β |
β― gopro-merge --help 01:02:58
gopro-merge 0.1.0
USAGE:
gopro-merge [OPTIONS] [ARGS]
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-p, --parallel <parallel> The amount of parallel movies to be merged. [default: amount of cores]
-r, --reporter <reporter> The reporter to be used for progress one of "json" | "progressbar" [default:
progressbar]
ARGS:
<input> Directory where to read movies from. [default: current directory]
<output> Directory where to write merged movies. [default: <input>]
Set RUST_LOG=debug
and follow the logs as well as ffmpeg stderr output log files:
[2021-11-14T23:15:25Z DEBUG gopro_merge::merge::ffmpeg::merger] setting progress len for GH000307.MP4 to 0 seconds
[2021-11-14T23:15:25Z DEBUG gopro_merge::merge::ffmpeg::command] Creating ffmpeg command with args ["-f", "concat", "-safe", "0", "-y", "-i", "/var/folders/11/7dvgz63d6rd047j_7vc854400000gn/T/.0307.txt", "-c", "copy", "/<FULL_PATH>/GH000307.MP4", "-loglevel", "error", "-progress", "pipe:1"]
[2021-11-14T23:15:25Z INFO gopro_merge::merge::ffmpeg::command] creating ffmpeg stderr file at /var/folders/11/7dvgz63d6rd047j_7vc854400000gn/T/.ffmpeg_stderr_GH000307.MP4.log
[2021-11-14T23:15:25Z DEBUG gopro_merge::merge::ffmpeg::merger] updating progress for GH000307.MP4 to 0 seconds
No prebuilt binaries are available. Install cargo
and then install this repo with cargo install
:
- https://www.rust-lang.org/tools/install
cargo install --git https://gitlab.com/gngeorgiev/gopro-merge
- Install
ffmpeg
, it should also includeffprobe
. Both binaries should be in your$PATH