我正在使用 ffmpeg 将 JPG 添加到 MP4 以制作 MP4。
由于只有一张图片可以制作视频,我想知道是否有办法减小视频大小?
命令:
$ ffmpeg -loop 1 -i image.jpg -i audio.mp3 -shortest -c:a copy output.mp4
Run Code Online (Sandbox Code Playgroud)
结果:
image.jpg
= 26.7K(图像不太清晰)audio.mp3
= 64.6M(54 分钟)output.mp4
= 80.6M(视频效果不太清晰,音乐还不错)MP4 的大小是否合理?
llo*_*gan 29
该方法使用 libx264 编码 H.264 视频。它比下面的流复制方法慢,但可能会输出较小的文件大小。
ffmpeg -loop 1 -framerate 1 -i image.jpg -i music.mp3 \
-c:v libx264 -preset veryslow -crf 0 -c:a copy -shortest output.mkv
Run Code Online (Sandbox Code Playgroud)
此方法只是将图像流式复制(无编码)到 MKV 容器中。它非常快,但如果大小很重要,则上述方法可能会产生较小的文件。
ffmpeg -loop 1 -framerate 1 -i image.jpg -i music.mp3 -c copy -shortest output.mkv
Run Code Online (Sandbox Code Playgroud)
YouTube 几乎接受任何东西,因此这些命令使用了一些技巧来加快编码速度,或缩小文件大小,并保持高质量,因为 YouTube 会重新编码您提供的任何内容。您的播放器可能不会喜欢它,但 YouTube 会。
在这些示例中,使用了非常低的帧速率,其处理速度应该比默认的 25 fps 快。
ffmpeg -loop 1 -i image.png -i music.mp3 -vf "scale='min(1280,iw)':-2,format=yuv420p" \
-c:v libx264 -preset medium -profile:v main -c:a aac -shortest -movflags +faststart output.mp4
Run Code Online (Sandbox Code Playgroud)
除了非常古老的设备之外,这应该可以在任何东西上播放(如果是这种情况,请更改-profile:v main
为-profile:v baseline
)。
如果您的音频输入已经是 AAC,则更-c:a aac
改为-c:a copy
以避免不必要的重新编码。
编码时间会更长,文件大小会比上面的 YouTube 命令大。
有关更多信息,请参阅FFmpeg Wiki:H.264。
归档时间: |
|
查看次数: |
18377 次 |
最近记录: |