video - 使用 ffmpeg 复制 GoPro 元数据 - 找不到编解码器的标签无
问题描述
我正在尝试使用 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 文件的链接。
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
解决方案
您可以尝试更换容器,但我不知道您是否可以接受
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
推荐阅读
- php - move_uploaded_file - 文件仅在直接加载该页面后更改
- selenium-webdriver - 使用硒等到在katalon工作室,Groovy
- linux - MiniZinc 在 Jupyter/Linux 中的输出命令
- matlab - 泰勒图 MATLAB
- input - 在python中划分输入
- python - 使用数据库中预先存在的数据编辑 SelectMultipleField
- c# - 通过 net core SDK 创建一个 azure eventthub 消费者组?
- c# - 使 C# 控制台应用程序识别 .exe.config 文件中手动编辑的更改
- c++ - 这种递归方法有什么问题?计算 2 个向量中相同索引中的匹配元素的数量
- ios - 在 Swift 中从闭包内调用异步共享实例方法的语法