【发布时间】:2014-10-21 04:25:51
【问题描述】:
我刚刚开始使用 PyGtk 制作一个 ubuntu 应用程序。我的第一个目标是打开、转换然后保存视频文件。忽略转换阶段,我将植入开放保存功能。但是在我打开一个视频文件并保存它的那一刻,我得到了 11B 大小的非视频文件。我刚刚在谷歌上搜索了一下,发现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
【问题讨论】:
-
如何从
.write("Sample Data")获取11KB的数据?那是 11 个字节,而不是 11 KB。 -
你是对的。我编辑了它。
标签: python opencv video ffmpeg pygtk