要使用ffmpeg

时间:2017-07-05 12:53:12

标签: batch-file ffmpeg mp3 webm youtube-dl

我正在使用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所以任何帮助都会被用来。

这是补充解释部分的图片。

enter image description here

4 个答案:

答案 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 文件的情况下传输音频:

https://askubuntu.com/questions/1258842/how-to-save-the-audio-from-webm-to-ogg-without-transcoding-using-ffmpeg#1258910