【问题标题】:Extract DVD subtitles programmatically以编程方式提取 DVD 字幕
【发布时间】:2010-12-26 04:39:28
【问题描述】:

我正在尝试使用程序从未加密的 DVD 中提取字幕,以便单独保存它们。我知道有些程序可以做到这一点(我发现这个页面例如:http://www.bunkus.org/dvdripping4linux/en/separate/subtitles.html),但我希望能够通过库调用或类似的东西来做到这一点(libdvdread 或 libdvdnav 是否支持这个),最好使用红宝石。

【问题讨论】:

    标签: ruby dvd subtitle


    【解决方案1】:

    我不知道有哪个图书馆可以做到这一点。

    在 ruby​​ 中,您可以调用程序。例如,要获取目录列表,您可以这样做

    files= `ls "#{dir}"`.to_a
    

    反引号变体为您提供被调用程序的标准输出。

    要知道文件是否存在

    system("ls \"#{file}\"")
    

    system 变体告诉你被调用程序的返回值是否为0

    使用这两种方法,您几乎可以对非交互程序执行任何操作。 http://www.bunkus.org/dvdripping4linux/en/separate/subtitles.html 中描述的程序应该适合这种控制。

    小心转义你给外部程序的参数。如果参数是"; rm -rf *; ls ".,可能会发生不希望的事情。

    【讨论】:

    • 改为system("ls", file) 以避免注入攻击。
    【解决方案2】:

    你可以看看 Handbrake,它可以让你提取视频、音频和字幕。

    还有 Handbrake 手册here 和字幕部分here,可以提供更多信息。

    这不在 Ruby 中,但您应该可以毫无问题地从 Ruby 调用 Handbrake CLI。

    【讨论】:

    • 请不要在链接资源时使用短链接。使用完整的网址。
    猜你喜欢
    • 2020-12-21
    • 2017-06-09
    • 2011-03-26
    • 2011-04-14
    • 1970-01-01
    • 2012-03-08
    • 2011-04-03
    • 2018-08-20
    • 1970-01-01
    相关资源
    最近更新 更多