使用 ffmpeg 复制 GoPro 元数据 - 找不到编解码器的标签无
Posted
技术标签:
【中文标题】使用 ffmpeg 复制 GoPro 元数据 - 找不到编解码器的标签无【英文标题】:Copying GoPro metadata with ffmpeg - Could not find tag for codec none 【发布时间】:2021-05-17 20:48:20 【问题描述】:我正在尝试使用 ffmpeg 复制 gopro 文件的元数据。 该问题的最基本演示是将所有内容复制到一个新文件中:
ffmpeg -y -i source.MP4 -c copy -copy_unknown -map 0:v -map 0:a -map 0:2 -map 0:3 -map 0:4 -map_metadata 0 result.MP4
这会产生错误:
Could not find tag for codec none in stream #2, codec not currently supported in container
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Error initializing output stream 0:4 --
据我了解,这意味着 ffmpeg 没有正确应用 -c 复制操作,而是抱怨没有数据流的编码器。同样的错误发生在 0:2 和 0:4
在谷歌上搜索时,如果发现一些人过去遇到过同样的问题,但我也发现了一些关于它有效的报告。
任何想法我做错了什么或者这实际上是一个错误?
这里是 ffprobe 和 GoPro file 的链接。
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'source.MP4':
Metadata:
major_brand : mp41
minor_version : 538120216
compatible_brands: mp41
creation_time : 2021-05-17T22:36:48.000000Z
firmware : HD7.01.01.90.00
Duration: 00:00:02.88, start: 0.000000, bitrate: 58664 kb/s
Stream #0:0(eng): Video: hevc (Main) (hvc1 / 0x31637668), yuvj420p(pc, bt709), 2704x1520 [SAR 1:1 DAR 169:95], 58557 kb/s, 59.94 fps, 59.94 tbr, 60k tbn, 59.94 tbc (default)
Metadata:
creation_time : 2021-05-17T22:36:48.000000Z
handler_name : GoPro H.265
vendor_id : [0][0][0][0]
encoder : GoPro H.265 encoder
timecode : 02:43:36:15
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 187 kb/s (default)
Metadata:
creation_time : 2021-05-17T22:36:48.000000Z
handler_name : GoPro AAC
vendor_id : [0][0][0][0]
timecode : 02:43:36:15
Stream #0:2(eng): Data: none (tmcd / 0x64636D74), 0 kb/s (default)
Metadata:
creation_time : 2021-05-17T22:36:48.000000Z
handler_name : GoPro TCD
timecode : 02:43:36:15
Stream #0:3(eng): Data: bin_data (gpmd / 0x646D7067), 30 kb/s (default)
Metadata:
creation_time : 2021-05-17T22:36:48.000000Z
handler_name : GoPro MET
Stream #0:4(eng): Data: none (fdsc / 0x63736466), 16 kb/s (default)
Metadata:
creation_time : 2021-05-17T22:36:48.000000Z
handler_name : GoPro SOS
Unsupported codec with id 0 for input stream 2
Unsupported codec with id 100359 for input stream 3
Unsupported codec with id 0 for input stream 4
【问题讨论】:
您找到解决方案了吗? 并非如此。我现在正在解析原始视频文件并寻找元数据标签。这不是一个很好的解决方案,如果我花时间学习 mp4 可能会更好,但它运行得很好。它还不是 100% 完美(无效值存在一些问题),但您可以查看 my Github 【参考方案1】:您可以尝试更换容器,但我不知道您是否可以接受
ffmpeg -y -i source.MP4 -c copy -copy_unknown -map 0:v -map 0:a -map 0:2 -map 0:3 -map 0:4 -map_metadata 0 result.mov
【讨论】:
感谢您的建议,不幸的是,这不是一个选项。我正在尝试提取 gopro 7 陀螺元数据,对其进行平滑处理并重新创建文件。通常来自 hero 7 的数据过于嘈杂,无法使用 reelsteady 进行稳定,但我希望过滤它可以使其可用。不过,Reelsteady 只需要 MP4。以上是关于使用 ffmpeg 复制 GoPro 元数据 - 找不到编解码器的标签无的主要内容,如果未能解决你的问题,请参考以下文章