Пример #1
0
        void RemuxOutputFile(EncodingSettings settings)
        {
            VideoMuxerType muxer;

            /* We need to remux to the original format */
            muxer = settings.EncodingProfile.Muxer;
            if (muxer == VideoMuxerType.Avi || muxer == VideoMuxerType.Mp4)
            {
                string outFile = settings.OutputFile;
                string tmpFile = settings.OutputFile;

                while (System.IO.File.Exists(tmpFile))
                {
                    tmpFile = tmpFile + ".tmp";
                }

                System.IO.File.Move(outFile, tmpFile);
                Remuxer remuxer = new Remuxer(PreviewMediaFile.DiscoverFile(tmpFile),
                                              outFile, muxer);

                /* Remuxing suceed, delete old file */
                if (remuxer.Remux(this.Toplevel as Gtk.Window) == outFile)
                {
                    System.IO.File.Delete(tmpFile);
                }
                else
                {
                    System.IO.File.Delete(outFile);
                    System.IO.File.Move(tmpFile, outFile);
                }
            }
        }
Пример #2
0
        public string RemuxFile(string inputFile, string outputFile, VideoMuxerType muxer)
        {
            Log.Information("Remux file");
            Remuxer remuxer = new Remuxer(Config.MultimediaToolkit.DiscoverFile(inputFile),
                                          outputFile, muxer);

            return(remuxer.Remux(mainWindow as Gtk.Window));
        }
Пример #3
0
 public override string RemuxFile(string inputFile, string outputFile, VideoMuxerType muxer)
 {
     Log.Information("Remux file");
     try {
         Remuxer remuxer = new Remuxer(App.Current.MultimediaToolkit.DiscoverFile(inputFile),
                                       outputFile, muxer);
         return(remuxer.Remux(MainWindow as Gtk.Window));
     } catch (Exception e) {
         Log.Exception(e);
         return(null);
     }
 }
Пример #4
0
        protected virtual void OnOpenbuttonClicked(object sender, System.EventArgs e)
        {
            if (useType == ProjectType.CaptureProject || useType == ProjectType.URICaptureProject)
            {
                string filename;

                filename = FileChooserHelper.SaveFile(this, Catalog.GetString("Output file"),
                                                      "Capture.mp4", Config.VideosDir, "MP4",
                                                      new string[] { "*.mp4" });
                if (filename != null)
                {
                    fileEntry.Text = System.IO.Path.ChangeExtension(filename, "mp4");
                }
            }
            else
            {
                MessageDialog md = null;
                string        folder, filename;

                folder   = System.Environment.GetFolderPath(Environment.SpecialFolder.Personal);
                filename = FileChooserHelper.OpenFile(this, Catalog.GetString("Open file"),
                                                      null, folder, null, null);
                if (filename == null)
                {
                    return;
                }

                try {
                    md = new MessageDialog((Gtk.Window) this.Toplevel,
                                           DialogFlags.Modal,
                                           MessageType.Info,
                                           Gtk.ButtonsType.None,
                                           Catalog.GetString("Analyzing video file:") + "\n" + filename);
                    md.Icon = Stetic.IconLoader.LoadIcon(this, "longomatch", Gtk.IconSize.Dialog);
                    md.Show();

                    mFile = PreviewMediaFile.DiscoverFile(filename);
                    if (!mFile.HasVideo || mFile.VideoCodec == "")
                    {
                        throw new Exception(Catalog.GetString("This file doesn't contain a video stream."));
                    }
                    if (mFile.HasVideo && mFile.Length == 0)
                    {
                        throw new Exception(Catalog.GetString("This file contains a video stream but its length is 0."));
                    }
                    if (GStreamer.FileNeedsRemux(mFile))
                    {
                        string q = Catalog.GetString("The file you are trying to load is not properly supported. " +
                                                     "Would you like to convert it into a more suitable format?");
                        if (MessagesHelpers.QuestionMessage(this, q))
                        {
                            var remux       = new Remuxer(mFile);
                            var newFilename = remux.Remux(this.Toplevel as Gtk.Window);
                            if (newFilename != null)
                            {
                                mFile = PreviewMediaFile.DiscoverFile(newFilename);
                            }
                        }
                    }
                    fileEntry.Text = mFile.FilePath;
                }
                catch (Exception ex) {
                    MessagesHelpers.ErrorMessage(this, ex.Message);
                }
                finally {
                    md.Destroy();
                }
            }
        }