video - 在 ffmpeg 中连接文件时如何保留辅助数据?

标签 video ffmpeg transcoding

我有多个 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 ,并创建了以下文件列表

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

关于video - 在 ffmpeg 中连接文件时如何保留辅助数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61701335/

相关文章:

video - FFMPEG裁剪大小总是错误的

iphone - 获取 iPhone 视频缩略图

html - h264/aac 编码的视频不能在 Edge 中播放,但可以在 Chrome 和 Firefox 中播放

python - 在 Python 中打开 ffmpeg 子进程时出错

ffmpeg - 使用 JAVE (ffmpeg) 从 amr 转码到 flac

ruby - 如何使用 bash 命令或 Ruby 使用 ffmpeg 将 mp4 文件批量转换为 ogg

android - 将opencv视频设置为全屏android

c++ - 现有 VoIP 系统的视频流 - 应该使用哪些库?

video - ffmpeg 分布式转码

ios - 如何将带有 alpha channel 的 webm 文件转换为将在 iPad 上的 safari 中播放的 hevc 编码文件?