Answers:
如果您在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
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
对于图像/视频,每秒使用2帧,这应该很好,但是如果需要,可以将其设置为更标准的25帧。
苏邦基几乎是对的。工作命令行如下:
ffmpeg -y -loop 1 -i image.jpg -i audio.mp3 -r 30 -b:v 2500k -vframes 14490 -acodec libvo_aacenc -ab 160k result.mp4
覆盖输出文件而不提示
不建议使用选项--loop_input -loop1。请参阅ffmpeg文档。
输入文件
每秒帧数
也可以表示为:-r 30000/1001,给出29.97nnn的fps
视频比特率; 数字越大,质量越好,文件大小越大。
如上所述。以秒为单位计算音频文件的总时间(例如00:02:41(2分41秒)等于161总秒(2 x 60)+ 41)。然后将总秒数乘以-r指定的每秒帧数(例如161 x 30 = 4830)。
-vframe可以替换为-t 161(-t持续时间记录或音频/视频的“持续时间”秒转码)
对要创建的文件类型使用正确的音频编解码器。对于.mp4,它应该是AAC格式。编解码器libvo_aacenc是适用于Windows 7系统的正确编码编解码器。
音频比特率
这是输出文件的名称。它可以是您系统的任何合法文件名。如果您未使用-vcodec指定扩展名,则该扩展名将帮助ffmpeg确定正确的视频编解码器。
这个简单的bash / cygwin脚本可以自动将目录中$ AUDIO扩展名的所有文件编码为目录中嵌入了folder.jpg图像的10FPS mp4视频文件,
对youtube上传有用;)
AUDIO=m4a;
$'\n'; for a in `ls -1 *.$AUDIO `; do ffmpeg -i $a &2> $a.info ; done;
cat '' > do.sh
IFS=$'\n';
for a in `ls -1 *.$AUDIO`; do D=`grep Duration $a.info | cut -d',' -f1 | cut -d' ' -f4 | cut -d'.' -f1 | head -n1 `; S=$(( $( echo $D | cut -d':' -f2 ) * 60 + 1 + ` echo $D | cut -d':' -f3 ` )) ; echo ffmpeg -loop_input -vframes $(( $S * 10 )) -i folder.jpg -i \"$a\" -y -r 10 -b 2500k -ab 384k -vcodec mpeg4 \"$a.mp4\" >> do.sh; done;
split -l5 do.sh
xa* &
下载VirtualDub,然后执行以下操作:
像打开普通视频文件一样打开图像。
以秒为单位计算音频的持续时间,并将其舍入到最接近的整秒(例如78.34秒变为79秒)。从现在开始,此值称为x。
转到“视频>帧频”,选择“更改为帧频(fps)”,然后输入“ 1 / x”作为值。此外,如果要在生成的文件中使用正常的帧速率(如25 fps),请选择“转换为fps”,然后在其中输入所需的帧速率。
选择“视频>压缩”,然后选择您喜欢的口味。可能是您需要使用调整大小滤镜来调整图像的大小。
转到“音频>其他文件的音频”,然后在此处选择音频。如果需要,请选择音频的压缩方式。
保存文件。
资料来源:stephanV