5

我有多个 360 视频,我试图在 ffmpeg 中连接。它自己的命令非常简单:

ffmpeg -f concat -i 0036_concat.txt -c copy -strict unofficial 36.mp4

where0036_concat.txt只是单个文件的列表。我遇到的问题是我无法让 ffmpeg 保留辅助数据。很简单地说,ffprobe任何源文件都包括以下内容:

Side data:
  spherical: equirectangular (0.000000/0.000000/0.000000)

而且我无法将其传播到输出文件。

这个问题有一个适用于单个文件的解决方案,但在连接多个文件时它不起作用。

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

4

2 回答 2

4

显然ffmpeg不支持。很多人建议为 FFmpeg 开发自己的扩展,但我发现它太过分了。

相反,我已经成功地google spatialmedia边数据添加到由 FFmpeg concat 产生的输出视频中。这很简单

python spatialmedia -i 36.mp4  equirectangular.mp4

您可以从其官方 repo中获取 spatialmedia 。下载最新版本,解压,就可以直接运行上面的命令了。

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

这就是你所需要的。


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

我下载了您的示例文件,并创建了以下文件列表

在此处输入图像描述

运行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这次可以成功看到预期的边数据

在此处输入图像描述

于 2020-05-27T16:41:37.960 回答
1

虽然 ffmpeg 似乎不支持这一点,但我发现ExifTool似乎可以完成这项工作。在您的 ffmpeg concat 之后运行此命令:

exiftool -tagsFromFile first_file_inside_concat_file.mp4 -all:all 36.mp4
于 2022-02-08T17:13:49.083 回答