簡體   English   中英

ffmpeg如何將音頻轉換為aac,但保持舊文件使用的比特率?

[英]ffmpeg how to convert audio to aac but keep bit rate at what the old file used?

我不希望這種情況經常發生,但是當通過批處理文件將視頻文件重新編碼為h265時,我正在檢查以確保音頻在aac中。 如果不是那么我想轉換為aac,但保持比特率在舊文件使用的,因為如果我只是轉換為aac ffmpeg將使用默認的128kbps值。 對於任何舊視頻,我的比特率可能會低於那個,因此上轉換會稍微增加文件大小。

有沒有辦法轉換為aac但保持舊的比特率?

這是我正在嘗試但它不斷將舊的89kbps流轉換為aac 128 kbps:

ffmpeg -i test.mp4 -acodec aac -vcodec copy test.aac.mp4

請注意,以上僅用於測試目的,我實際上正在轉換視頻。

注2:我的問題與其他問題完全沒有相似之處。 我將ffprobe結果存儲在變量中也沒有問題,我甚至沒有提到它。

您可以使用ffprobe從輸入文件中檢測音頻流的比特率,然后根據該命令的輸出運行相應的FFMPEG命令。

這是一個小的bash腳本,它將檢測音頻流上的比特率,如果它低於128Kbps,只需在轉換過程中使用原始比特率。 這應該避免上采樣:

#!/usr/bin/env bash
AUDIO_BITRATE=`ffprobe -v error -select_streams a:0  -show_entries stream=bit_rate -of default=noprint_wrappers=1:nokey=1 $1`
if [[ $AUDIO_BITRATE < 128000 ]]; then
  ffmpeg -i $1 -acodec aac -ab ${AUDIO_BITRATE}k -vcodec copy new-$1
else
  ffmpeg -i $1 -acodec aac -vcodec copy new-$1
fi

或者,如果您需要轉換為其他視頻格式且未安裝FFMPEG,則可以使用商業轉換API,例如Zamzar

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM