private void btnAddFiles_Click(object sender, EventArgs e)
        {
            using (OpenFileDialog dlg = new OpenFileDialog())
            {
                dlg.Filter      = "Video files (*.mp4,*.mpg,*.mpeg,*.mod,*.avi,*.wmv,*.mts,*.m2t,*.ts,*.tod,*.m2v,*.m4v,*.webm,*.dat,*.mpe,*.mpeg4,*.ogm)|*.mp4;*.mpg;*.mpeg;*.mod;*.avi;*.wmv;*.mts;*.m2t;*.ts;*.tod;*.m2v;*.m4v;*.webm;*.dat;*.mpe;*.mpeg4;*.ogm|All files (*.*)|*.*";
                dlg.Multiselect = true;
                if (dlg.ShowDialog(this) == DialogResult.OK)
                {
                    var avinfo = new PrimoSoftware.AVBlocks.MediaInfo();

                    foreach (string fileName in dlg.FileNames)
                    {
                        avinfo.InputFile = fileName;

                        if (avinfo.Load())
                        {
                            var videoInfo = GetVideoStream(avinfo);

                            if (videoInfo != null)
                            {
                                m_settings.InputFiles.Add(fileName);
                                ListViewItem lvi = new ListViewItem(fileName);
                                lvi.SubItems.Add(FormatVideoInfo(videoInfo));
                                lvFiles.Items.Add(lvi);
                            }
                        }
                    }
                }
            }
        }
 private PrimoSoftware.AVBlocks.VideoStreamInfo GetVideoStream(PrimoSoftware.AVBlocks.MediaInfo avinfo)
 {
     foreach (var stream in avinfo.Streams)
     {
         if (stream.MediaType == PrimoSoftware.AVBlocks.MediaType.Video)
         {
             return((PrimoSoftware.AVBlocks.VideoStreamInfo)stream);
         }
     }
     return(null);
 }
Exemple #3
0
        static bool DecodeAvcFile(Options opt)
        {
            // transcoder will fail if output exists (by design)
            DeleteFile(opt.OutputFile);

            var mediaInfo = new PrimoSoftware.AVBlocks.MediaInfo();

            mediaInfo.Inputs[0].File = opt.InputFile;

            if (!mediaInfo.Open())
            {
                PrintError("MediaInfo.Open()", mediaInfo.Error);
                return(false);
            }

            MediaSocket inSocket  = MediaSocket.FromMediaInfo(mediaInfo);
            MediaSocket outSocket = CreateOutputSocket(opt);

            // create Transcoder
            using (Transcoder transcoder = new Transcoder())
            {
                transcoder.AllowDemoMode = true;
                transcoder.Inputs.Add(inSocket);
                transcoder.Outputs.Add(outSocket);

                bool res = transcoder.Open();
                PrintError("Transcoder open", transcoder.Error);
                if (!res)
                {
                    return(false);
                }

                res = transcoder.Run();
                PrintError("Transcoder run", transcoder.Error);
                if (!res)
                {
                    return(false);
                }

                transcoder.Close();
                PrintError("Transcoder close", transcoder.Error);
                if (!res)
                {
                    return(false);
                }
            }

            return(true);
        }