批处理文件 – ffmpeg转换 – 保持音频比特率

我正在使用ffmpeg从不同的视频格式(flv,mp4)中提取音频并将其转换为mp3.

%~dp0ffmpeg.exe -i %1 -ar 44100 -ac 2 -ab 128k "%~dpn1.mp3"

这很好用.但是,在我的输入文件中,音频比特率会有所不同,我想相应地调整输出比特率.即使通过广泛的Google搜索,我也没有发现任何提示如何保持原始比特率.

我需要的是:

-ab copy

当然,这不起作用.

有什么可行的吗?

P.S:你可能从上面的格式中得知,我正在使用Windows批处理文件.会有黑客使用%~dp0ffmpeg.exe -i,通过grep获取音频比特率并将其插入命令行.我认为必须有一种更简单,更优雅的方式.

尽管原始线程在没有点击任何东西的情况下寻找答案,但nate的脚本似乎是最有用的帖子.但它有一些限制,例如并非所有输出都会给你一个比特率,一些道岔给你的结果是“默认”.这是一个更加改进的版本.

#!/bin/env bash
ext=$1
for f in *.${ext}; do
    x=${f%.*} ;
    x=${x% - YouTube}; # I usually download some song recvers from YouTube.
    x=$x".mp3";
    bit=`ffmpeg -i "${f}" 2>&1 | grep Audio | awk -F", " '{print $5}' | cut -d' ' -f1`
    if [ -n "$bit" ]; then
        ffmpeg -i "$f" -ab ${bit}k "$x"
    else
        ffmpeg -i "$f" "$x" # this is if we don't have an output from the grep line above, ffmpeg will keep the original quality, that is 192k for 192k
    fi        
done
相关文章
相关标签/搜索