是否可以使用 FFmpeg 将各种视频转码为几乎相同质量的 H.264?
Is it possible to transcode various of videos to H.264 as almost the same quality using FFmpeg?
我有从各种资源捕获的各种视频,但使用不同的 video/audio 编解码器、比特率和分辨率。
这里有一些例子:
- 视频:WMV3,比特率:6Mbps,音频:WMA,格式:WMV
- 视频:H.263,比特率:30Mbps,音频:MP3,格式:AVI
- 视频:H.264,码率:20Mbps,音频:AAC,格式:MKV
其实视频分辨率可能不同,但这不是重点。
视频太多,真的不可能为每个视频都尝试最佳视频比特率。
那么,是否可以将所有这些视频都转换为 H.264 和 AAC 格式的 MP4,并保持与原始视频质量相同的视频质量?
或者问题可能是,两个音频或视频编解码器之间是否存在比特率映射,例如(我编的,只是一个例子)h.263 10Mbps ≈ h.264 6Mbps?
libx264 编码器有一个 CRF 速率控制模式,粗略地说,就是这样做的。
ffmpeg -i in -c:v libx264 -crf 23 -c:a copy out
较低的 CRF 以较大的文件大小为代价保持较高的质量。 18 到 28 是一个不错的范围。
我有从各种资源捕获的各种视频,但使用不同的 video/audio 编解码器、比特率和分辨率。
这里有一些例子:
- 视频:WMV3,比特率:6Mbps,音频:WMA,格式:WMV
- 视频:H.263,比特率:30Mbps,音频:MP3,格式:AVI
- 视频:H.264,码率:20Mbps,音频:AAC,格式:MKV
其实视频分辨率可能不同,但这不是重点。 视频太多,真的不可能为每个视频都尝试最佳视频比特率。
那么,是否可以将所有这些视频都转换为 H.264 和 AAC 格式的 MP4,并保持与原始视频质量相同的视频质量?
或者问题可能是,两个音频或视频编解码器之间是否存在比特率映射,例如(我编的,只是一个例子)h.263 10Mbps ≈ h.264 6Mbps?
libx264 编码器有一个 CRF 速率控制模式,粗略地说,就是这样做的。
ffmpeg -i in -c:v libx264 -crf 23 -c:a copy out
较低的 CRF 以较大的文件大小为代价保持较高的质量。 18 到 28 是一个不错的范围。