我有一个很长的 ogg 声音文件,想把它放到 youtube 上,但我没有视频,所以想在 ogg 的持续时间内显示一个 jpg。我见过:
avconv -i "sound file.ogg" -i cog.jpg out.avi
我已将 jpg 调整为 640 x 480,但收到以下警告:
Incompatible pixel format 'yuvj420p' for codec 'mpeg4', auto-selecting format 'yuv420p'
Incompatible sample format 's16' for codec 'ac3', auto-selecting format 'flt'
[ac3 @ 0x18ae340] invalid bit rate
并且它失败了:
Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height
关于我可以使用哪些参数来实现这个功能,您有什么想法吗?
答案1
在没有看到完整的命令行输出的情况下,这只能归结为猜测,但avconv
这里似乎选择了 AC3 音频编码器,这不是一个有用的默认值。
尝试指定要使用的编码器。对于 YouTube,建议使用 H.264 和 AAC,而不是 MPEG-4 Part 2 视频和 AC3 音频。
avconv -loop 1 -i cog.jpg -i "sound file.ogg" \
-c:v libx264 -tune stillimage -pix_fmt yuv420p \
-c:a libfaac -q:a 100 \
-shortest \
out.mp4
您应该添加-loop 1
强制循环播放图像的选项,以及-shortest
在没有更多音频后停止编码的选项。-shortest
您也可以指定-t 00:02:30
在 2 分 30 秒后停止,这比 更准确-shortest
。
以上内容适用于任何最新版本。请注意,avconv
不是来自 FFmpeg,而是Libav 分支因此与ffmpeg
命令完全无关。