【问题标题】:How to open&save a video file in python?如何在 python 中打开和保存视频文件?
【发布时间】: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


【解决方案1】:

我认为 OpenCV 是最好的方法!因为它处理媒体的功能多样而强大!并且还支持WindowsLinuxMac OSiOSAndroid。 OpenCV 专为提高计算效率而设计,并且非常注重实时应用程序。该库以优化的 C/C++ 编写,可以利用多核处理。您可以在 OpenCV 中找到许多 Video Analysis 函数!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-06
    • 2021-11-24
    • 2021-02-01
    • 2017-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多