FFMPEG 中级指南/WMV
Windows Media Video 和 Windows Media Audio 编解码器是 高级系统格式 的主要组成部分,微软试图在推出时找到市场上领先的编解码器。虽然这两个编解码器随着时间的推移都被超越了,但 WMV 仍然是 YouTube 上传文件的可接受格式,像 FFmpeg 这样的项目能够将其编码为早期版本。这种格式及其背景与微软之前的 AVI 格式形成对比,微软旨在推动新颖的编解码器开发。当时,此举导致不同系统之间发生冲突,因此随着 ASF 的开发,微软转而采用了当时领先的视频和音频编解码器。包含这些编解码器的因素由以下几点决定:a)编码速度,b)解码时系统的性能,以及 c)最终的质量。
需要注意的是,使用未经微软授权的软件将任何材料编码为 ASF 违反 了他们的专利权。[1] 当 Xiph 等组织允许使用其格式时,微软在 2000 年效仿了 Fraunhofer,要求一位反向工程该格式的开发人员停止开发。该软件名为 VirtualDub,作者在不久后就遵守了要求。
因此,如果你必须使用 FFmpeg 编码为 ASF,请不要发布你的最终材料。如果可能的话,使用其他编解码器。
你可以通过执行以下命令来流复制无法由 FFmpeg 编码的编解码器
ffmpeg -i input -vcodec copy -acodec copy output
这将同时复制视频 (vcodec
) 和音频 (acodec
)。
对于支持的编码器,你可以执行
ffmpeg -i input -b 1500k -vcodec wmv2 -acodec wmav2 output
请注意 -b
标记。对于大多数 480p 视频,输出略微像素化,但仍然易于观看。这将创建 Windows Media Video 8 视频和音频文件流,因为 Windows Media Video 9 的编码器尚未完全正常工作。[2]
确保包含 -acodec
标记,否则默认值将不是 wmav2
,也不会包含在输出视频中。如果输入音频拥有超过两个通道(比如环绕声),编码器无法处理更多通道,将会抛出 "通道过多" 错误。使用 -ac
标记手动将通道数设置为 2。