我有多个 360 视频,我试图在 ffmpeg 中连接。它自己的命令非常简单:
ffmpeg -f concat -i 0036_concat.txt -c copy -strict unofficial 36.mp4
在哪里
0036_concat.txt
只是单个文件的列表。我遇到的问题是我无法让 ffmpeg 保留辅助数据。很简单地说,ffprobe
在任何源文件上都包括:Side data:
spherical: equirectangular (0.000000/0.000000/0.000000)
而且我无法将其传播到输出文件。
this question有一个适用于单个文件的解决方案,但在连接多个文件时它不起作用。
如果有人知道如何注入(inject)整个字符串,我会非常好。
最佳答案
显然 ffmpeg
不支持。很多人建议为 FFmpeg 开发自己的扩展,但我发现它太过分了。
相反,我已经成功了使用 google spatialmedia
将边数据添加到由 FFmpeg concat 产生的输出视频中。这很简单
python spatialmedia -i 36.mp4 equirectangular.mp4
您可以从其official repo 获取空间媒体。 .下载 the latest release ,解压,就可以直接运行上面的命令了。
没有的话需要安装python第一的。
这就是你所需要的。
下面我用你自己的视频在我的本地添加一个例子。
我下载了你的sample file ,并创建了以下文件列表
运行
ffprobe GS020101.mp4
,我们可以看到 Side data: spherical: equirectangular (0.000000/0.000000/0.000000)
在那儿运行
ffmpeg -f concat -i 0036_concat.txt -c copy -strict unofficial output.mp4
运行
ffprobe output.mp4
,如您所料,边数据不存在运行
python spatialmedia -i output.mp4 equirectangular.mp4
运行
ffprobe equirectangulat.mp4
, 这次可以成功看到预期的边数据 .关于video - 在 ffmpeg 中连接文件时如何保留辅助数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61701335/