python - 如果从 py2app 运行,ffmpeg 不起作用
问题描述
我正在尝试构建一个连接 2 个 mp4 文件的简单应用程序。如果我从命令行运行它,它工作正常,但如果我从 py2app 应用程序运行它,它就不起作用。如果我从控制台的 py2app 中运行该应用程序(例如“dist/addTag.app/Contents/MacOS/addTag”),它可以正常工作。仅当我通过双击运行该应用程序时,它才不起作用。有任何想法吗?下面的代码
#! /usr/bin/python
import argparse
import ffmpeg
import os
import shutil
import sys
from Tkinter import *
import time
fields = 'Input Video', 'Tag Video', 'Output Name'
def fetch(entries, bu, lb, rt):
bu['state'] = 'disabled'
lb['text'] = 'working'
rt.update()
ffmpeg.concat(ffmpeg.input(entries[0][1].get()), ffmpeg.input(entries[1][1].get())).output(os.path.expanduser("~/desktop/")+entries[2][1].get()).run()
bu['state'] = 'normal'
lb['text'] = 'Ready'
rt.update()
def makeform(root, fields):
entries = []
for field in fields:
row = Frame(root)
lab = Label(row, width=15, text=field, anchor='w')
ent = Entry(row)
row.pack(side=TOP, fill=X, padx=5, pady=5)
lab.pack(side=LEFT)
ent.pack(side=RIGHT, expand=YES, fill=X)
entries.append((field, ent))
return entries
if __name__ == '__main__':
root = Tk()
root.title("Video Maker")
ents = makeform(root, fields)
root.bind('<Return>', (lambda event, e=ents: fetch(e)))
label = Label(root, text="Ready")
label.pack(side=LEFT)
b1 = Button(root, text='Make Video',
command=(lambda e=ents: fetch(e, b1, label, root)))
b1.pack(side=LEFT, padx=5, pady=5)
b2 = Button(root, text='Quit', command=root.quit)
b2.pack(side=LEFT, padx=5, pady=5)
root.mainloop()
解决方案
推荐阅读
- javascript - jQuery 在单击事件上触发对 URL 的调用
- javascript - svg上的点击事件拒绝播放
- rust - 使用 Serde 反序列化时如何将特殊值转换为 Option::None?
- android - 模拟器:queryCoreProfileSupport:未找到交换间隔
- javascript - 如何在 javascript 中使用正则表达式替换 cookie 字符串中的 cookie 值
- python - 识别字符串是否仅具有特定文本
- python - 在 scipy.optimise 中正常吗?
- mysql - 需要帮助来调整复杂的查询
- sql - 在 Flink SQL CLI 客户端中将 Kafka 主题视为 Flink 表?
- r - 我可以使用 Pearson 相关性来确定两个数据集之间是否存在相关性,按日期排序