将 MP3 转换为视频 - 使用元数据文本的图像作为视频轨道?

Converting MP3 to Video - Use image of Metadata text as Video track?

我有很多 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" 部分,我想要一张从该文件的元数据文本生成的图片。简而言之:我想要的只是上面显示的白色背景上的元数据文本,导出后用作 picture.jpg 在 FFmpeg 中生成视频时使用。

如何使用脚本对文件夹中的所有 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

谁能帮我看看为什么这些视频没有生成?

经过大量研究,我得出了一个混乱的解决方案。我把它张贴在这里,以便搜索的人受益。

#!/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