三星不支持 FFmpeg 导出编解码器

问题描述

我正在使用 FFmpeg 渲染视频(将图像文件与音频连接起来,然后应用速度和音量过滤器)以导出视频以上传到 TikTok。因此,我必须先将视频移到我的手机上。

我不明白为什么我的手机 (S20) 可以愉快地播放其中一个视频(首先显示编解码器信息),但在播放另一个视频时会出现“不支持编解码器”错误(信息第二个)。

The Supported File

The unsupported file

编解码器信息来自 VLC,如您所见,两个视频都具有相同的编解码器 (H264-MPEG4)。

通过分析信息,我得出的唯一结论是,这与视频中“解码格式”不同这一事实有关。如何更改后者的导出命令,以便我的手机支持编解码器?

连接代码 ffmpeg -f concat -safe 0 -i {path_temp}\\clips.txt -c copy -y "{path_temp}\\{title}_a.mp4

过滤代码 ffmpeg -i input.mp4 -filter:a "volume={volume}" -y temp.mp4"

第二个过滤器 ffmpeg -i temp.mp4 -filter_complex "[0:v]setpts={1/speed}*PTS[v];[0:a]atempo={speed}[a]" -map "[v]" -map "[a]" -y output.mp4

解决方法

由于您正在重新编码,因此只需一步即可。

ffmpeg -f concat -safe 0 -i {path_temp}\\clips.txt -filter_complex "[0:v]setpts={1/speed}*PTS,format=yuv420p[v];[0:a]volume={volume},atempo={speed}[a]" -map "[v]" -map "[a]" -y output.mp4

format=yuv420p 生成广泛兼容的像素格式。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...