我正在使用youtube-dl从youtube视频中提取最佳音频质量。然而,最优质的音频通常被证明是webm格式,这是无用的。我想编写一个批处理脚本,将webm文件转换为带有ffmpeg的mp3。我已经尝试在reddit上使用this guide来执行此操作,但它似乎不起作用。它似乎创建一个空的mp3文件,当我尝试播放它时显示错误,并且元数据也完全空白。
这是批处理脚本:
for %%a in ("Downloaded\*.*") do %CD%\ffmpeg\bin\ffmpeg.exe -i "%%a" -vn -ar 44100 -ac 2 -ab 192k -f mp3 "Converted\%%~na.mp3" pause
我还将解释整个事情应该如何运作。
这个想法是,你使用youtube-dl提取最好的音频,然后将该文件放入Downloaded文件夹(见下图),然后你运行mp3脚本(使用来自ffmpeg的命令)进行转换将已下载文件夹中的webm文件转换为mp3文件,并将其放在Converted文件夹中。 mp3脚本是上面的代码。但它似乎没有正常工作。
我不熟悉批处理脚本,也不熟悉ffmpeg所以任何帮助都会被用来。
这是补充解释部分的图片。
答案 0 :(得分:14)
youtube-dl已经包含此功能 - 只需指定您想要mp3:
youtube-dl -x --audio-format mp3 https://www.youtube.com/watch?v=BaW_jenozKc
将https://www.youtube.com/watch?v=BaW_jenozKc
替换为您的实际网址。
答案 1 :(得分:1)
您可以通过这个脚本进行转换:
for FILE in *.webm; do
echo -e "Processing video '\e[32m$FILE\e[0m'";
ffmpeg -i "${FILE}" -vn -ab 128k -ar 44100 -y "${FILE%.webm}.mp3";
done;
将其保存到 .sh 文件中并执行。它会自动将所有的 .webm 转换成 .mp3
答案 2 :(得分:0)
webm使用vorbis或opus音频编解码器,两者的质量都远远优于mp3。 youtube上提供aac音频,其质量介于opus和vorbis之间,并受到媒体播放器和小工具的大力支持。 在质量方面,不建议将有损音频重新编码为另一种有损音频,特别是如果其中一种自拍格式是mp3。
如果我是我,我会抓住那个AAC。
按照this answer:
youtube-dl -f bestaudio[ext=m4a] --embed-thumbnail --add-metadata <Video-URL>
答案 3 :(得分:0)
在我的用例中,支持 .ogg
ffmpeg -i "input.webm" -vn -c:a copy "output.ogg"
无需重新编码:-c:a copy
.webm 文件确实可以包含 vorbis 音频,但它也可以包含 opus 音频。此外,ogg 文件可以包含两种音频格式。可以在不转换为 .ogg 文件的情况下传输音频: