0

我正在将一系列 exr 图像转换为 mov。exrs 已从 3d 应用程序 (houdini) 中发布。在安装新版本的 3rd 方渲染 (redshift 2.5.50) 之前,它一直运行良好。他们声明他们的 exr 图像使用的是 openexr2.0。FFmpeg (3.4.1 win64) 是否支持 exr2.0?

FFmpeg 似乎无法读取它们并返回:

“标志 4 未实施”

“流 0 解码失败”

“找不到流 0 的编解码器参数(视频:exr,无):未指定大小考虑增加 'analyzeduration' 和 'probesize' 选项的值”

我的 cmd 命令在渲染更新之前工作:

"D:\ffmpeg\ffmpeg.exe" -start_number 1 -i "D:\RedShiftFFmpeg\render\redshift\FFmpeg_redshift_%4d.exr" -y "D:\RedShiftFFmpeg\render\FFmpeg_mantra1.mov"
4

1 回答 1

0

我们遇到了同样的错误,并将其追踪到导致问题的打包 exr 中层名称的长度。如果 exr 中的任何层名称超过 28 个字符,我们会在电影编码中 得到相同的ffmpeg错误。

如果您查看 exr 标头,请查找名为“文件格式版本”的属性以检查标志。类型为int版本字段是幻数后面的四字节组,它被视为两个单独的位字段。第一个字节是当前的OpenEXR版本号,在您的情况下应该是“ 2 ”。第二、第三和第四个字节被视为一组布尔标志。

例如,文件格式版本头属性中的“ 2x000 ”值通过ffmpeg libx264编码没有错误,但“ 2x400 ”值显示与上述相同的错误代码。检查版本字段的OpenEXR文档,我们确认该值对应于指示 exr 包含“长名称”的标志,因为属性名称、属性类型名称和通道名称的最大长度为 31 个字节”

于 2018-01-16T22:45:07.210 回答