Пакетное копирование .SRT с использованием FFMPEG - PullRequest
0 голосов
/ 09 мая 2020

У меня есть эта команда, использующая 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 файлов в папке с точками

Спасибо

Ответы [ 3 ]

0 голосов
/ 10 мая 2020

Вы можете использовать a для l oop:

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

Файлы субтитров должны иметь то же имя, что и видео.

0 голосов
/ 12 мая 2020

Спасибо, ребята, что помогли мне.

Я использую эту команду для пакетного копирования субтитров:

#!/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

0 голосов
/ 10 мая 2020

Выполните следующие команды:

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

Адаптировано из Как преобразовать весь каталог с помощью ffmpeg?

Что делает параметр -map: 0:s:m:language:ind - это input #0: subtitles:metadata:language:indonesian. Это означает, что он выбирает все потоки субтитров из ввода, которые имеют метаданные на индонезийском языке.

Если вы получаете сообщение об ошибке:

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

Вы можете проигнорировать это. Просто сообщение о том, что в этом конкретном вводе нет потока субтитров с метаданными на индонезийском языке.

...