avconv 视频来自单个 jpg 和 ogg

avconv 视频来自单个 jpg 和 ogg

我有一个很长的 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命令完全无关。

相关内容