我刚刚开始使用PyGtk创建一个ubuntu应用程序。我的第一个目标是打开,转换然后保存视频文件。忽略转换阶段,我将植入开放保存功能。但是,当我打开一个视频文件并保存它时,我得到了11B大小的非视频文件。我只是google这个,发现OpenCV用于python。但我不确定这是否是最佳方式。我还认为我将使用ffmpeg库对视频文件进行一些操作。这是我想要的还是可能有其他内置库?
顺便说一下,这是打开并保存文件的代码:
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 :(得分:0)
我认为 OpenCV 是最好的方法!因为它具有多样化和强大的处理媒体功能!并且还支持Windows
,Linux
,Mac OS
,iOS
和Android
。 OpenCV专为提高计算效率而设计,专注于实时应用。该库以优化的C / C ++编写,可以利用多核处理。你可以在OpenCV中找到许多Video Analysis函数!