Я пытаюсь извлечь субтитры из незашифрованных DVD-дисков с помощью программы, поэтому я могу сохранить их отдельно. Я знаю, что есть программы, которые это делают (я нашел эту страницу, например: http://www.bunkus.org/dvdripping4linux/en/separate/subtitles.html), но я хотел бы иметь возможность сделать это с помощью вызова библиотеки или чего-то подобного (например, libdvdread или libdvdnav), предпочтительно используя ruby.Извлечение субтитров DVD программно
ответ
Я не знаю ни одной библиотеки, которая могла бы это сделать.
В рубине вы можете позвонить программам. Например, чтобы получить список каталогов, вы можете сделать
files= `ls "#{dir}"`.to_a
Вариант backtick дает вам стандартную программу calle.
Чтобы узнать Wheter файл существует
system("ls \"#{file}\"")
system
вариант говорит вам, возвращаемое значение вызываемой программы, было ли 0
.
Используя эти два метода, вы можете делать почти все с неинтерактивными программами. Программы, описанные в классе http://www.bunkus.org/dvdripping4linux/en/separate/subtitles.html, подходят для такого управления.
Будьте осторожны, избегая аргументов, которые вы предоставляете внешним программам. Если argumend "; rm -rf *; ls ".
, могут возникнуть нежелательные вещи.
Вы можете взглянуть на ручной тормоз, он позволяет извлекать видео, аудио и субтитры.
Существует также руководство Handbrake here, а раздел субтитров here, который может предоставить дополнительную информацию.
Это не в Ruby, но вы можете иметь возможность вызвать CLI Handbrake из Ruby без проблем.
Пожалуйста, не используйте короткую ссылку, если хотите связать источник. Используйте полный URL. – j0k
Используйте 'system (" ls ", file)' вместо этого, чтобы избежать инъекций. –