我有一个文件夹,里面全是音频文件,扩展名为 .mp3 .amr 和 .wav。我有一个 image.jpg。我想要将 image.jpg 与该文件夹中的每个音频文件合并,然后将它们转换为单独的 vidoe.mp4 文件。如何在 Ubuntu 中使用 FFmpge 执行此操作?我使用的是 Ubuntu 14.04。
答案1
给视频添加声音很简单
ffmpeg -framerate 60 -i input.png -i input.mp3 -vcodec libx264 -crf 20 -preset medium -acodec aac -vf scale=1280:-2,format=yuv420p output.mp4
-i
input.mp3 音频文件名-acodec copy
将音频从输入流复制到输出流-s
是视频的输出分辨率
基本上,只需将 更改input.png
为图片的文件名,将 更改input.mp3
为音频文件output.mp4
即可。最后,将其更改为所需的目标文件名。
这是一个非常简单的方法,可以完成您想要的操作,但可以按照以下方式编写脚本:
#! /bin/bash
###################################################################
picture="input.jpg" # Change this to the file name of your picture
###################################################################
for i in *.mp3; do
ffmpeg -framerate 60 -f image2 -i $picture -i input.mp3 -vcodec libx264 -crf 20 -preset medium -acodec aac -vf scale=1280:-2,format=yuv420p "${i%.*}.".mp4
done
将图片的文件名放在顶部,将其粘贴到文件中,将其另存为类似convert.sh
。更改权限chmod 777 convert.sh
,然后运行它./convert.sh
它应该读取所有 mp3 文件,添加图片并输出与 mp3 同名的 mp4 文件。
如果您想对 wav 文件或 amr 执行相同操作,只需更改for i in *.mp3; do
为for i in *.wav; do
或for i in *.amr; do
。
希望有帮助!
祝你好运 :)
答案2
将同一张图片与不同的 mp3 文件合并,从而生成与 mp3 文件同名的单独 avi 文件,代码如下:for i in *.mp3; do name= echo "$i" | cut -d'.' -f1
; echo "$name"; ffmpeg -y -i image.jpg -i "$i" "${name}.avi"; done。只需更改图片文件的名称即可。