我不知道我問的是否正確,但就這樣吧。我買了一套 DVD 盒作為我的生日禮物,並將文件轉碼後儲存在我的電腦上以供觀看。將原始檔案轉儲到我的電腦後,我使用以下批次命令壓縮它們;
INPUT="$1"
for i in *.mp4 ; do
ffmpeg -i "$i" -vcodec h264 -acodec libfaac "$i.ts"
mv "$i.ts" "$i.mp4"
sleep 3
done
這導致了很好的壓縮和質量,但是當我查看資料夾時,圖標中的文件只是灰色框,而同一資料夾中的原始文件顯示了視訊圖像。 (哈哈,我知道這只是裝飾性的,但它困擾著我:)
如果我使用命令;
ffmpeg -i input.mp4 -vcodec h264 -acodec libfaac output.mp4
它可以很好地顯示圖像圖標,但編碼為(AVC1)而不是(h264),這不是我想要的。
有沒有辦法在我的批次檔命令中解決這個問題,讓它根據需要顯示檔案圖示?謝謝你!
答案1
感謝 Gyan 提供的信息,我能夠針對我要求修改批次文件命令的問題提出有效的解決方案,如下所示。
INPUT="$1"
for i in *.mp4 ; do
ffmpeg -i "$i" -vcodec h264 -acodec libfaac "$i.ts"
ffmpeg -i "$i.ts" -bsf:a aac_adtstoasc -c copy "$i.mp4"
rm *.ts
sleep 3
done
但是,根據 Gyan 提供的信息,我們可以跳過編碼為傳輸流文件,然後重新混合為 mp4 的步驟,並在以下批次命令中簡單地壓縮 mp4 文件。
INPUT="$1"
for i in *.mp4 ; do
ffmpeg -i "$i" -vcodec h264 -acodec libfaac "$i.mp4"
sleep 3
done
請記住,這是使用舊版本的 ffmpeg 完成的。對於較新版本的 ffmpeg,請使用以下內容來壓縮視頻,並保持正在壓縮的視頻的正確圖像圖標;
INPUT="$1"
for i in *.mp4 ; do
ffmpeg -i "$i" -vcodec h264 -acodec aac "$i.mp4"
sleep 3
done
使用批次檔命令的唯一問題是它會在檔案名稱(filename.mp4.mp4) 中新增額外的檔案副檔名,我使用Pyrenamer 解決了這個問題,只需單擊即可刪除多個目錄下所有文件中的額外檔案副檔名。
如果有人知道如何在批次命令中解決這個問題,請發表評論,我將修改這個答案。我嘗試過“mv”命令的變體,但沒有成功。