ffmpeg не работает, если запустить из py2app - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь создать простое приложение, которое объединяет 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()
...