2014-08-27 3 views
0

Я только начал делать приложение ubuntu с помощью PyGtk. Мой первый объект - открыть, конвертировать и сохранить видеофайл. Игнорируя фазу преобразования, я собираюсь внедрить функции open-save. Но в тот момент, когда я открываю видеофайл и сохраняю его, я получаю файл без видео с размером 11B. Я только что нашел это и нашел OpenCV для python. Но я не уверен, что это лучший способ сделать это. Я также думаю, что собираюсь использовать библиотеки ffmpeg, чтобы делать некоторые манипуляции с видеофайлами. Это то, что я хочу, или могут быть другие встроенные библиотеки?Как открыть и сохранить видеофайл в python?

Кстати, вот мой код, чтобы открыть и сохранить файл:

def on_openFile_clicked(self, widget): 
     filename=None 
     dialog = Gtk.FileChooserDialog("Please choose a file", self, 
      Gtk.FileChooserAction.OPEN, 
      (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, 
      Gtk.STOCK_OPEN, Gtk.ResponseType.OK)) 

     response = dialog.run() 
     self.add_filters(dialog) 

     if response == Gtk.ResponseType.OK: 
      filename = dialog.get_filename() 
     elif response == Gtk.ResponseType.CANCEL: 
      print 'Cancel Clicked' 
     dialog.destroy() 

     print "File Choosen: ", filename 

    def add_filters(self, dialog): 

     filter_py = Gtk.FileFilter() 
     filter_py.set_name("Video Files") 
     filter_py.add_mime_type("video/mp4") 
     filter_py.add_mime_type("video/x-flv") 
     dialog.add_filter(filter_py) 

     filter_any = Gtk.FileFilter() 
     filter_any.set_name("Any files") 
     filter_any.add_pattern("*") 
     dialog.add_filter(filter_any) 

    def on_saveFile_clicked(self, widget): 
     filename=None 
     dialog = Gtk.FileChooserDialog("Please choose a file", self, 
      Gtk.FileChooserAction.SAVE, 
      (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, 
      Gtk.STOCK_SAVE, Gtk.ResponseType.OK)) 

     response = dialog.run() 
     self.add_filters(dialog) 

     if response == Gtk.ResponseType.OK: 
      filename = dialog.get_filename() 
     elif response == Gtk.ResponseType.CANCEL: 
      print 'Cancel Clicked' 
     dialog.destroy() 

     if filename != None: 
      save_file=open(filename, 'w') 
      save_file.write("Sample Data") 
      save_file.close() 
     print "File Saved: ", filename 
+0

Как вы получаете 11 Кбайт данных из '.write (« Sample Data »)'? Это 11 байт, а не 11 килобайт. –

+0

Вы правы. Я отредактировал его. – sheshkovsky

ответ

0

Я думаю OpenCV это лучший способ! из-за его разнообразных и мощных функций для обработки медиа! а также поддерживает Windows, Linux, Mac OS, iOS и Android. OpenCV был разработан для вычислительной эффективности и с большим вниманием к приложениям реального времени. Написанная в оптимизированном C/C++, библиотека может использовать многоядерную обработку. вы можете найти множество функций Video Analysis в OpenCV!

Смежные вопросы