【问题标题】:encoding jpeg as h264 video将 jpeg 编码为 h264 视频
【发布时间】:2019-01-24 02:30:20
【问题描述】:

我正在使用以下命令将 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

【问题讨论】:

    标签: ffmpeg h.264


    【解决方案1】:

    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 编码预设。尽量使用最慢的。

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

    • -crf 质量。较低的值会导致较高的质量。使用仍然为您提供可接受质量的最高值。默认值为 23。

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

    • -c:a aac AAC 音频编码器。如果您的输入已经是 AAC 或 M4A,则使用 -c:a 复制到 stream copy 而不是重新编码。

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

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

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

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

    请参阅FFmpeg Wiki: H.264 了解更多信息。

    【讨论】:

    • 这太棒了,因为我什至无法获得正确的标志组合来将单个图像拉伸到多个帧(我发誓我尝试过 -t...哦,好吧) .不幸的是,它仍然没有出现在我在 Mac 上的 Chrome 中的 HTML5 视频标签中。我还有更多测试要做,但是在运行上面答案中的命令后,我已经附加了完整的输出。
    猜你喜欢
    • 2013-06-11
    • 1970-01-01
    • 1970-01-01
    • 2020-06-09
    • 1970-01-01
    • 2015-02-23
    • 1970-01-01
    • 1970-01-01
    • 2015-10-11
    相关资源
    最近更新 更多