将jpeg编码为h264视频

时间:2012-02-12 22:45:13

标签: ffmpeg h.264

我使用以下命令将AVI编码为H264视频,以便在HTML5视频标记中使用:

ffmpeg -y -i "test.avi" -vcodec libx264 -vpre slow -vpre baseline -g 30 "out.mp4"

这很好用。但我也想从一张静态图像中创建一个占位符视频(长篇故事),所以我这样做:

ffmpeg -y -i "test.jpg" -vcodec libx264 -vpre slow -vpre baseline -g 30 "out.mp4"

这不起作用。是什么给了什么?

编辑:在尝试了LordNeckbeards的回答之后,这是我的完整输出:http://pastebin.com/axhKpkLx

1 个答案:

答案 0 :(得分:4)

10秒输出的示例:

ffmpeg -loop 1 -framerate 24 -i input.jpg -c:v libx264 -preset slow -tune stillimage -crf 24 -vf format=yuv420p -t 10 -movflags +faststart output.mp4

同样的事情,但有音频。输出持续时间将与输入音频持续时间匹配:

ffmpeg -loop 1 -framerate 24 -i input.jpg -i audio.mp3 -c:v libx264 -preset slow -tune stillimage -crf 24 -vf format=yuv420p -c:a aac -shortest -movflags +faststart output.mp4
  • -loop 1循环输入图像。

  • -framerate设置图像输入的帧速率。默认值为25.某些播放器存在帧速率较低的问题,因此建议使用超过6左右的值。

  • -i input.jpg输入。

  • -c:v libx264 H.264视频编码器。

  • -preset x264编码预设。使用最慢的一个。

  • -tune x264 tuning进行各种调整以适应特定情况。

  • -crf的质量。值越低,质量越高。使用仍然提供可接受质量的最高值。默认值为23。

  • -vf format=yuv420p像素格式输出为yuv420p。这确保了输出使用广泛可接受的色度子采样方案。从图像编码时推荐用于libx264。

  • -c:a aac AAC音频编码器。如果您的输入已经是AAC或M4A,那么请使用-c:副本代替stream copy而不是重新编码。

  • -t 10(在第一个示例中)输出10秒。需要因为图像无限循环。

  • -shortest(在第二个示例中)使输出与最短输入的持续时间相同。在这种情况下,它是音频,因为图像无限循环。

  • -movflags +faststart在编码完成后将moov原子重定位到文件的开头。允许在渐进式下载播放中更快地开始播放;否则整个视频必须在播放前下载。

  • -profile:v main(可选)某些设备无法处理高调。

有关详细信息,请参阅FFmpeg Wiki: H.264