我正在使用 ffmpeg 尝试对 mp4 进行下采样,但它只会输出 mkv 文件,而不是 mp4 文件。因此,我有一个 mkv 文件输出。我尝试使用以下命令将其转换为 mp4,但显示错误:
$ ffmpeg -i 输出.mkv -c 复制输出.mp4 [mp4 @ 0x556237e63480] 在流 #1 中找不到编解码器 pcm_s16be 的标签,容器中当前不支持编解码器 无法为输出文件 #0 写入标题(编解码器参数不正确?):参数无效
如何使用 ffmpeg 将其转换为 mp4?mkv 文件的编解码器信息如下:
输入 #0,matroska,webm,来自‘output.mkv’: 元数据: 时间码:21:21:16;29 主要品牌:XAVC 次要版本:16785407 兼容品牌:XAVCmp42iso2 编码器:Lavf59.27.100 时长:00:04:07.75,开始:0.000000,比特率:4244 kb/s 流 #0:0:视频:h264(高)、yuv420p(电视、bt709/bt709/iec61966-2-4、渐进式)、1280x720 [SAR 1:1 DAR 16:9]、29.97 fps、29.97 tbr、1k tbn 元数据: HANDLER_NAME:视频媒体处理程序 供应商 ID:[0][0][0][0] 编码器:Lavc59.37.100 libx264 时长:00:04:07.747000000 流 #0:1:音频:pcm_s16be,48000 Hz,立体声,s16,1536 kb/s(默认) 元数据: HANDLER_NAME :声音媒体处理程序 供应商 ID:[0][0][0][0] 时长:00:04:07.750000000
更新:
请注意,用于创建原始文件的原始下采样命令(从 1080p 到 720p)(导致无法复制的 mkv 文件如下:
$ ffmpeg -i H403.mp4 -filter:v scale=1280:-1 -c:a copy output.mkv
如果有人能建议如何修改此命令以直接生成 720p mp4 文件,我将不胜感激。(请注意,文件大小差异很大:原始 1080p 文件为 1577 Mb,但 720p 文件为 8.8 Mb,几乎小 200 倍)。
如果文件最初是 MP4 格式(“对 mp4 进行下采样”),那么也许可以共享您使用的初始下采样命令,以便可以首先改进输出为 MP4。
现在,要将 MKV 转换回 MP4,您需要将音频重新编码为支持的音频格式,您可以使用 AAC:
为了立即正确地将原始下采样转换为 MP4,您可以将相同的音频重新编码添加到初始命令: