在ffmpeg中串联文件时,如何保留辅助数据?

时间:2020-05-09 18:00:04

标签: video ffmpeg transcoding 360-video

我尝试在ffmpeg中连接多个360度视频。它本身的命令非常简单:

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有一个适用于单个文件的解决方案,但是当连接多个文件时不起作用。

如果有人知道如何注入整个字符串,我会很好。

1 个答案:

答案 0 :(得分:1)

显然ffmpeg不支持。许多人建议为FFmpeg开发您自己的扩展程序,但是我发现它过大了。

相反,我已经成功完成了,使用google spatialmedia将辅助数据添加到FFmpeg连接产生的输出视频中。就像

一样简单
python spatialmedia -i 36.mp4  equirectangular.mp4

您可以从其official repo中获得空间媒体。下载the latest release,解压缩后,您将可以直接运行上述命令。

如果您没有它,则需要先安装python

这就是您所需要的。


下面我用自己的视频在本地添加一个示例。

我下载了您的sample file,并创建了以下文件列表

enter image description here

运行ffprobe GS020101.mp4,我们可以看到Side data: spherical: equirectangular (0.000000/0.000000/0.000000)在其中

enter image description here

运行ffmpeg -f concat -i 0036_concat.txt -c copy -strict unofficial output.mp4

按预期运行ffprobe output.mp4,没有边数据

enter image description here

运行python spatialmedia -i output.mp4 equirectangular.mp4

enter image description here

运行ffprobe equirectangulat.mp4这次您可以成功查看预期的辅助数据

enter image description here

相关问题