首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Handbrake:保存自定义预设/编码命令,以便在另一台机器上的handbrake-cli上使用

Handbrake:保存自定义预设/编码命令,以便在另一台机器上的handbrake-cli上使用
EN

Stack Overflow用户
提问于 2014-01-03 22:33:14
回答 2查看 9.9K关注 0票数 4

我有一堆视频要转换,从flv到mp4。在Ubuntu的手刹车gui中,我已经整理好了所有的设置。我已经将其保存为名为"all-tablets“的预设。

我需要在另一台ubuntu机器上使用HandBrakeCLI,那只是命令行。所以,我有两个选择,但我不知道该怎么做:

1)查看手刹车gui使用的设置是什么,这样我就可以复制它们并直接与HandBrakeCLI一起使用,并根据需要替换文件名。

2)保存我的“所有平板电脑”预设,以便我可以将其复制到另一台机器上,并在那里与HandBrakeCLI一起使用。

选项2看起来更好。当我在HandBrakeCLI中列出可用的预设时,它没有列出我的自定义预设,这表明图形用户界面版本将它们保存到与cli版本不同的地方。

有什么建议吗?谢谢,麦克斯

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-10 04:40:10

~/.ghb/presets将您的图形用户界面预设存储为PropertyList (它是一种XML文档)。您可以从此处获取设置,并将其转换为CLI的命令行参数。遗憾的是,CLI不读取GUI的配置文件或任何其他配置。如果你能用C(++)编写代码,添加这种支持可能不会太难。CLI位于手闸源树中的test/test.c中。

下面是一小段简单易懂的Python,可以帮助您入门。可在此处http://winappdbg.sourceforge.net/blog/PList.py中找到Plist.py

代码语言:javascript
复制
#!/usr/bin/env python                                                                                                    
import sys

import PList

def translate(item):
    args = []

    if "AudioList" in item:
        args.append(("-E", item["AudioList"][0]["AudioEncoderActual"]))

    return args

def invoke(args):
    print "HandbrakeCLI " + " ".join(" ".join(arg) for arg in args)

presets = sys.argv[1]
name = sys.argv[2]

data = PList.fromstring(open(presets).read())

for item in data:
    if isinstance(item, dict):
        if 'PresetName' in item:
            if item['PresetName'] == name:
                invoke(translate(item))

祝你好运,玩得开心。

票数 3
EN

Stack Overflow用户

发布于 2014-01-14 20:15:47

实际上,我最终弄明白了这一点:我在Windows7虚拟机上尝试了Windows版本的Handbrake。在windows中,GUI版本只是CLI的包装器,不像Linux那样,它们是两个完全独立的东西。(我不确定Mac上的情况是什么)。

我首先尝试导入我在linux版本中保存的预设plist文件,但windows gui无法正确解析它,或者对它不满意:它似乎将其中一个布尔值当作一个变量名(即尝试做一些类似true = "foo"的操作):我无法弄清楚plist文件中出现这种情况的原因:将它与一个保存在windows之外的文件并排显示,看起来很好。

因此,我在windows GUI中从头开始。界面的风格有点不同,但我可以在我的linux gui中设置所有的选项。然后,我使用这些设置进行了转换:因为windows gui使用的是CLI版本,所以您可以在转换日志中看到发送到cli的命令。我复制了它,并在linux CLI中尝试了相同的选项集,它工作得很好。

我从来没有想过我会写这篇文章来回答任何问题,但答案似乎是“使用windows”;-)谁会这么做。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20905937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档