[英]Bash shell linux how to detect name of the extention files (flv) (ass)
I would like to create a script to mux video (flv) subtitle (.ass) automatically without user intervention 我想创建一个脚本来自动多路复用视频(flv)字幕(.ass),而无需用户干预
Exemple the script detect two files with the same name (.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
and get this 并得到这个
~/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
... ...
how to détect name of the files with extention .flv .ass with the same folder of the script and mux with my commande line 如何使用扩展名.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
tx for your help 发送给您帮助
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
Replace ls
with whatever you used to output the list of files. 将
ls
替换为用于输出文件列表的任何内容。
Try this 尝试这个
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
This should work with filenames containing spaces. 这应该与包含空格的文件名一起使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.