Closed Leseratte10 closed 1 year ago
Hm, just noticed that this bug report is probably better suited for https://github.com/gyroflow/mp4-merge ...
EDIT: Thanks for moving it over.
Should be fixed in d2439551c2f8cca6e66a524f3847fa9758480139 Gyroflow with this change is building here https://github.com/gyroflow/gyroflow/actions/runs/4511096423
Thanks, I'll test that as soon as it's built.
It's available now https://gyroflow.xyz/devbuild/
Yeah, I've already downloaded it and I'm testing right now.
Thanks a lot, it's working and it's now merging GoPro files perfectly. Thanks for the quick fix, I've sent you a couple coffees over at buymeacoffee.
Is there an existing issue for this?
Have you tried the latest build?
Gyroflow version
v1.5.0 gh1144
What operating system are you using?
Ubuntu 20.04
What GPU are you using?
NVIDIA 2080 Ti
What happened?
I bought a GoPro Hero 11 some time last year, and I've been searching for a long time for a tool that can properly join GoPro's split files together without losing or corrupting the GoPro GPS and timecode metadata.
Someone recommended GyroFlow to me and it managed to do what I didn't get to work with hours of ffmpeg tests and scripting - just merge GoPro chapters together without losing data (thanks a lot for that, I'm definitely going to donate a bit of money just for that feature).
However there's one thing in the merging code that I'd consider to be a bug: My source GoPro video from the Hero 11 has four data streams - Video, Audio, the timecode (tmcd) and the GoPro GPS data (gpmd). Video and Audio is self-explanatory - just merge the streams and keep the metadata. The GPMD track is also simple - it's just binary data so it can just be appended.
That results in some of the GPMD values (like the camera model) being included twice, but that still conforms to the file format standard and shouldn't be an issue.
However, I noticed that the time code stream, which usually is a four-byte big endian value of frames since midnight, gets appended as well. So if I have a video consisting of two chapters, once the chapters are merged with this tool the resulting file has a time code stream with eight bytes instead of the usual four.
Since the video, audio and data streams are merged together to form one continuous video, there's no need to keep that secondary chapter's starting timecode in the final video's tmcd section data, is there? If anything it could confuse other tools working with the merged file since they just expect a 4-byte timecode and not multiple timecodes.
Is there any possibility of fixing this issue? The intended behaviour, in my opinion, should be to keep merging Video, Audio and GPMD streams as it currently happens, but when encountering a GoPro Timecode (data type "tmcd" or handler name "GoPro TCD", it should only use the data from the very first chapter in the final output file and ignore the timecode from the other chapters.
If the current behaviour is working as intended, can a setting / option be added to make it only store the first chapter's timecode instead?
I'm attaching a log output of importing two GoPro 11 chapters into Gyroflow v1.5.0-gh1144. I looked through all the existing issues and didn't find anything similar - probably because it's such an edge case and most people wouldn't even notice the duplicate time code data.
Relevant log output