簡體   English   中英

Bash Shell Linux如何檢測擴展文件的名稱(FLV)(ass)

[英]Bash shell linux how to detect name of the extention files (flv) (ass)

我想創建一個腳本來自動多路復用視頻(flv)字幕(.ass),而無需用戶干預

例如,腳本檢測到兩個具有相同名稱(.flv)(.ass)的文件

~/Vidéos/vidéo numbre 1.mp4
~/Vidéos/vidéo numéro 1.ass
~/Vidéos/vidéo numbre 2.mp4
~/Vidéos/vidéo numéro 2.ass
~/Vidéos/vidéo numbre x.ass
~/Vidéos/vidéo numbre x.mp4
~/Vidéos/vidéo numbre zz.mp4
~/Vidéos/vidéo numbre xy.ass

並得到這個

~/Vidéos/vidéo numbre 1.mkv
~/Vidéos/vidéo numbre 2.mkv
~/Vidéos/vidéo numbre x.mkv
~/Vidéos/vidéo numbre zz.mkv

...

如何使用擴展名.flv .ass和腳本的相同文件夾來檢測文件名,並使用我的命令行對mux進行檢測

ffmpeg -i "${name}.flv" -vcodec copy -acodec copy mkvtemp.mkv
mkvmerge -v -o "${name}.mkv" --default-track 0 --language 0:fre "${name}.ass" mkvtemp.mkv

發送給您幫助

for name in `ls | rev | cut -f2- -d. | rev | sort | uniq`; do
  ffmpeg -i "${name}.flv" -vcodec copy -acodec copy mkvtemp.mkv
  mkvmerge -v -o "${name}.mkv" --default-track 0 --language 0:fre "${name}.ass" mkvtemp.mkv
done

ls替換為用於輸出文件列表的任何內容。

嘗試這個

find . -name "*.mp4" | while read line
do
   name=`basename "$line" .mp4`
   ffmpeg -i "${name}".flv -vcodec copy -acodec copy mkvtemp.mkv
   mkvmerge -v -o "${name}".mkv --default-track 0 --language 0:fre "${name}".ass mkvtemp.mkv
done

這應該與包含空格的文件名一起使用。

暫無
暫無

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

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