使用 FFMPEG 批量 .SRT Rip

Batch .SRT Rip Using FFMPEG

我有这个命令使用 ffmpeg

root@ubuntu-4cpu-8gb-sg-sin1:/home/jaac/torrents/rtorrent/dots# ffmpeg -i Title.NF.WEB-DL.DDP2.0.x264-Ao.mkv -map 0:7 indo16.srt

这将撕掉 1 个子(印度尼西亚地区)

如何批量翻录?我在点文件夹中有 17 个文件

谢谢

运行 这些命令:

cd /home/jaac/torrents/rtorrent/dots
for f in *.mkv; do ffmpeg -i "$f" -map 0:s:m:language:ind "${f%.*}.srt"; done

改编自How do you convert an entire directory with ffmpeg?

-map 选项的作用:0:s:m:language:indinput #0: subtitles:metadata:language:indonesian。这意味着它从输入中选择所有具有印度尼西亚语言元数据的字幕流。

如果出现错误:

Stream map '0:s:m:language:ind' matches no streams.
To ignore this, add a trailing '?' to the map.

你可以忽略它。只是一条消息,告诉您在该特定输入中没有带有印度尼西亚语言元数据的字幕流。

您可以使用 for 循环:

for f in *.mkv; do ffmpeg -i $f -vf subtitles="${f%.mkv}".srt "${f%.mp4}"_sub.mkv; done

字幕文件必须与视频同名。

感谢大家帮助我。

我用这个命令批量翻录字幕:

#!/bin/bash
cd /home/jaac/torrents/rtorrent/dots || exit
for f in *.mkv; do ffmpeg -i "$f" -map 0:5:s:m:language:id "${f%.*}.srt"; done

我使用 Shellcheck

感谢@llogan 和@m8factorial