有人能给我提供 FFmpeg 的命令行参数来将 MP4 视频转换为 Adobe Flash SWF 文件吗?
答案1
基本上是这样的:
ffmpeg -i in.mp4 out.swf
这将默认将视频转换为 Sorenson Spark(H.263,或称为flv1
),并将音频转换为 MP3,使用您的 FFmpeg 所具有的任何 MP3 编码器 - 可能是libmp3lame
。
如果您需要更改视频质量,您有两个选择:
在后面添加一个
-qscale:v
选项-i in.mp4
,其值从 1 到 31,值越高表示质量越差(请先尝试 2 或 3)。这是一个 VBR 设置。添加
-b:v
带有比特率的选项,例如1M
或500K
。当然,这是 CBR 设置,可能会导致单位文件大小的视觉质量较低。
对于音频:
添加
-q:a
VBR MP3 选项,值在 0 到 7 之间,0 表示最佳质量。添加
-b:a
CBR MP3 选项,例如192K
。
考虑将您的视频转换为 FLV 容器,它可以处理比 SWF(仅支持 H.263、VP6 或 Motion JPEG)更多种类的编解码器。
这样您就可以使用 H.264 视频和 AAC 音频,与 SWF 文件中的 H.263 / MP3 变体相比,它们可以在较小的文件大小下提供更好的质量。您甚至可能有机会复制比特流,这意味着质量完全不会降低。
ffmpeg -i in.mp4 -c copy out.flv
如果这不起作用,请重新编码:
ffmpeg -i in.mp4 -c:v libx264 -c:a aac -strict experimental -b:a 192K out.flv
这将使用 x264 编码器。要在此处更改视频质量,您有以下选项:
-crf
在后面添加一个选项-i in.mp4
,其值介于 0 到 51 之间,值越低表示质量越好。默认值为 23,合理值为 18-28。添加
-b:v
选项,类似于上面的恒定比特率模式。
查看x264 编码指南在 FFmpeg wiki 上查看更多信息。