如何使用 FFmpeg 将 Flash 视频 (.flv) 转换为 OGG Theora 视频以在 HTML 5 中显示?
当我尝试使用
ffmpeg -i dayinthelife.wmv -vcodec libtheora -acodec libvorbis -b 750k dayinthelife.ogv
它产生了以下输出。
Seems stream 1 codec frame rate differs from container frame rate: 1000.00 (1000/1) -> 29.97 (30000/1001)
Input #0, asf, from 'dayinthelife.wmv':
Duration:output 00:01:14.19, start: 5.000000, bitrate: 3754 kb/s
Stream #0.0: Audio: wmav2, 48000 Hz, stereo, s16, 192 kb/s
Stream #0.1: Video: wmv3, yuv420p, 1440x1080, 24000 kb/s, 29.97 tbr, 1k tbn, 1k tbc
Output #0, ogg, to 'dayinthelife.ogv':
Stream #0.0: Video: libtheora, yuv420p, 1440x1080, q=2-31, 500 kb/s, 90k tbn, 29.97 tbc
Stream #0.1: Audio: vorbis, 48000 Hz, stereo, s16, 64 kb/s
Stream mapping:
Stream #0.1 -> #0.0
Stream #0.0 -> #0.1
[libtheora @ 0x2551920]theora_encode_init failed
Error while opening codec for output stream #0.0 - maybe incorrect parameters such as bit_rate, rate, width or height
答案1
这相对容易:
ffmpeg -i input.flv -vcodec theora -acodec vorbis output.ogv
使用选项指定所需的目标比特率-b
,例如-b 1M
或-b 512K
。
请注意,您需要编译支持 Theora 和 Vorbis 的 ffmpeg。如果您的 ffmpeg 没有这些选项,请按照指南在这里使用适当的库来编译它。
更具体地说,这些标志:--enable-libtheora --enable-libvorbis
。
答案2
这是一种离题万里的道路,但是它可以完成任务。
Handbrake 是一款基于 FFmpeg 的免费编码器,可将多种视频格式转换为 MP4。如果您指定要将输出设置为“Web 优化”,它将为您提供 MP4 格式的 HTML5 兼容视频。
以下是将您的视频转换为 Ogg/Theora 的步骤。
- 打开手刹
- 指定“网页优化”
- 获取 Handbrake 将运行的命令行输出,但不要运行它。
- 在文本编辑器中,将库从 MP4 更改为 Ogg/Theora 库。
- 通过 FFmpeg 运行修改后的输出。