use*_*559 9 audio video ffmpeg concatenation
我有 1 个图像 (jpg) 和 1 个音频文件 (MP3),我想将其输出为视频文件(例如 AVI)。
有谁知道如何使用FFMPEG加入两者?我想在音频持续时间内显示图像。
任何人的想法?
如果您在 Windows 中,您也可以在 Windows Movie maker 中进行...如果您需要说明,请发表评论
对于 FFmpeg 使用这个
ffmpeg -loop_input -vframes 14490 -i imagine.jpg -i audio.mp3 -y -r 30
-b 2500k -acodec ac3 -ab 384k -vcodec mpeg4 result.mp4
Run Code Online (Sandbox Code Playgroud)
vframes 14490 是应该循环的帧数,以便为整个 audio.mp3 文件提供连续的图像
例如:8 分 3 秒 ((8m x 60s + 3s) x 30fps = 14490 vf)
资源从这里
有一种比这里建议的方法简单得多的方法,它不需要计算帧数或输入单个文件的长度(特别适合批处理)。使用最新版本的 ffmpeg,您可以使用该-shortest选项,该选项在最短流结束时停止编码 - 在本例中为 input.mp3(因为图像将永远循环,它具有无限长度):
ffmpeg -i input.mp3 -f image2 -loop 1 -r 2 -i input.jpg \
-shortest -c:a copy -c:v libx264 -crf 23 -preset veryfast output.mp4
Run Code Online (Sandbox Code Playgroud)
这对图像/视频使用每秒 2 帧,这应该没问题,但如果需要,您可以将其设置为更标准的 25。
小智 5
subanki 几乎是对的。工作命令行如下;
ffmpeg -y -loop 1 -i image.jpg -i audio.mp3 -r 30 -b:v 2500k -vframes 14490 -acodec libvo_aacenc -ab 160k result.mp4Run Code Online (Sandbox Code Playgroud)
在没有提示的情况下覆盖输出文件
不推荐使用选项“-loop_input”,使用 -loop 1。请参阅ffmpeg 文档。
输入文件
每秒帧数
也可以表示为:-r 30000/1001 给出 29.97nnn 的 fps
视频比特率; 数字越大,质量越好,文件越大。
如上所述;以秒为单位计算音频文件的总时间(例如 00:02:41(2 分 41 秒)等于 161 总秒数 (2 x 60) + 41)。然后将总秒数乘以您使用 -r 指定的每秒帧数(例如 161 x 30 = 4830)。
-vframes 可以替换为 -t 161(-t 持续时间记录或转码“持续时间”秒的音频/视频)
为您正在创建的文件类型使用正确的音频编解码器。对于 .mp4,它应该是 AAC 格式。编解码器 libvo_aacenc 是适用于我的 Windows 7 系统的正确编码编解码器。
音频比特率
这是输出文件的名称。它可以是您系统的任何合法文件名。如果您没有使用 -vcodec 指定一个,该扩展将帮助 ffmpeg 确定正确的视频编解码器。
| 归档时间: |
|
| 查看次数: |
14938 次 |
| 最近记录: |