ffmpeg - 使用 ffmpeg 转换 MXF 失败
问题描述
我有一个 MXF 视频
我搜索了语法以转换为 mov 并在 Win10 上的 Mobaxterm 中运行它。
"/drives/c/Program Files (x86)/ffmpeg/bin/ffmpeg.exe" -i Clip0001.MXF -c:v libx264 -c:a aac -ab 384k -sn -strict -2 output.mov
我在 VideoLan 中查看它,它看起来很棒。
我将它加载到 Magix Movie Studio 15 中,音频很好,但视频是绿色的!
ffmpeg output.mov ....向我展示:
Stream #0:0(eng): Video: h264 (High 4:2:2) (avc1 / 0x31637661), yuv422p, 1920x1080 [SAR 1:1 DAR 16:9], 4530 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
即使这样也行不通:
ffmpeg.exe -i Clip0001.MXF output.mov
关于转换这个有什么建议吗?
编辑1:
Edit2:试试这个,它可以工作,但质量很糟糕。
ffmpeg.exe" -i Clip0001.MXF -c:v mpeg4 -c:a aac -ab 384k -sn -strict -2 output.mov
解决方案
FFmpeg 没有失败;许多视频编辑器通常具有功能有限的 H264 解码器。
您的输入具有 4:2:2 色度二次采样,并且 ffmpeg 将尽可能保留它。在这里,它可以而且确实如此。但是,您的视频编辑器只能处理 4:2:0 子采样 H264 流。
所以,使用
ffmpeg.exe -i Clip0001.MXF -pix_fmt yuv420p -c:v libx264 -c:a aac -b:a 384k -sn output.mov
如果此命令由于缺少 AAC 编码器而引发错误,则-strict -2
您的 ffmpeg 非常旧(> 3 年)。你应该升级。
推荐阅读
- mysql - SQL:在子查询中分组
- karate - 我无法在空手道中将 readTimeout 配置为超过 60 秒
- google-cloud-datastore - 查看未编入索引的数据存储字段
- ios - 从 Firebase 检索信息时,控制流如何工作?
- vba - 从共享驱动器加载的 Word 文档的本地副本无法使用 VBA 另存为 PDF 方法。不保存文档
- angular - Angular Input 设置焦点问题在 iOS 设备中不起作用
- ros - 如何将预序列化数据发布到 ROS?
- reactjs - 方法“text”意味着在 1 个节点上运行。找到了 0 个
- python - 在 docker Alpine 中安装 pandas
- ruby-on-rails - Google Cloud Talent 解决方案异常:Google::Cloud::PermissionDeniedError