我有一堆有 2 個音軌的影片檔。它們是 avi 檔案。音軌沒有標籤,當我嘗試播放它們時,預設音軌沒有音訊。還有 2 首曲目,第二首是有音訊的。
我可以運行一個命令來從每個檔案中刪除軌道 1 和 3 嗎?
他們在 Ubuntu 伺服器上。僅限 CLI。
avprobe version 9.18-6:9.18-0ubuntu0.14.04.1, Copyright (c) 2007-2014 the Libav developers
built on Mar 16 2015 13:19:10 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
[mpeg4 @ 0xd1dac0] Invalid and inefficient vfw-avi packed B frames detected
Input #0, avi, from 'Video004.avi':
Metadata:
encoder : VirtualDubMod 1.5.10.2 (build 2540/release)
Duration: 00:49:16.99, start: 0.000000, bitrate: 1937 kb/s
Stream #0.0: Video: mpeg4 (Advanced Simple Profile), yuv420p, 640x480 [PAR 1:1 DAR 4:3], 23.98 tbn, 23.98 tbc
Stream #0.1: Audio: mp3, 32000 Hz, 1 channels, s16p, 96 kb/s
Stream #0.2: Audio: mp3, 32000 Hz, 1 channels, s16p, 96 kb/s
Stream #0.3: Audio: mp3, 32000 Hz, 1 channels, s16p, 96 kb/s
# avprobe output
答案1
avconv 似乎是解決方案
avconv -i $file -map 0:0 -map 0:2 -acodec copy -vcodec copy $outfile
我把它放入一個循環中
dir="*.avi"
for file in $dir
do
avconv -i $file -map 0:0 -map 0:2 -acodec copy -vcodec copy $outfile
done
我沒有嘗試保存到相同的文件名,但我認為它不起作用。您可以輕鬆地刪除舊檔案並重新命名新檔案。我只是輸出到具有相同名稱的臨時目錄,然後將它們全部移動以覆蓋原始目錄。
解釋地圖arg。告訴 avconv 要複製哪些曲目。 0:0 是視頻,0:2 是第二個音軌。然後將 acodec 和 vcodec 設為複製,這意味著它會複製音訊和視訊而不更改它。
答案2
嘗試這個關聯。向下滾動直到到達將單聲道音訊轉換為立體聲,反之亦然並嘗試一下。它允許您透過選擇其中一個通道將立體聲軌道轉換為單聲道軌道。