我有很多MP3文件,都是音乐会的录音。每个人都有
的元数据例如:(使用ffprobe)
Metadata:
title : Vishweshwara
genre : Flute
album : Sindu Bhairavi
artist : Sikkil Sisters
Duration: 00:06:23.48, start: 0.000000, bitrate: 128 kb/s
现在我想把这些mp3转换成mp4上传到Youtube。 我知道我可以使用:
for i in *.mp3; do ffmpeg -v quiet -i "picture.jpg" -i "$i" -shortest -acodec copy "`sed 's/mp3/mp4/g'<<<$i`"; done
但对于"picture.jpg"
部分,我想要从该文件的元数据文本生成图片。简而言之:我想要的只是在FFmpeg中生成视频时导出的白色背景上的上述元数据文本,以便稍后用作picture.jpg
。
如何使用脚本为文件夹中的所有mp3文件执行此操作?
我尝试了以下编写的脚本,但视频输出中没有数据(甚至没有原始音频也没有新图像)
for i in *.mp3;
do
convert label:"$(mediainfo "$i")" picture.jpg
ffmpeg -v quiet -i "picture.jpg" -i "$i" -shortest -acodec copy "`sed 's/mp3/mp4/g'<<<$i`";
rm picture.jpg
done
有人可以帮助我为什么不生成这些视频吗?
答案 0 :(得分:1)
经过大量研究后,我提出了一个混乱的解决方案。我将它发布在这里,以便有人搜索它将受益。
#!/bin/bash
###this script needs "mediainfo" get it with
#sudo apt-get install mediainfo
#if you dont have it
######Made by Ashwin
mkdir output;
for i in *.mp3;
do
f="${i[@]/%mp3/mp4}"
convert label:"$(mediainfo "$i")" ""$i".png";
ffmpeg -v quiet -loop 1 -r 1 -i ""$i".png" -i "$i" -c:a copy -shortest "$f";
rm ""$i".png";
mv "$f" output/"$f";
done
将其另存为scr.sh
并在终端中运行chmod 755 scr.sh
。将其复制到保存歌曲的位置,然后运行./scr.sh