예제 #1
0
        private void Extract_btn_Click(object sender, EventArgs e)
        {
            m_objReader.PropsSet("experimental.mfcodecs", "true");
            m_objReader.PropsSet("experimental.out_video_packets", "true");
            m_objReader.PropsSet("external_process", "false");
            m_objWriter.PropsSet("external_process", "false");

            m_objWriter.WriterSet(@"M:\!Delete\mp3.mp3", 1, " format='mp3' video::codec='null' audio::codec = 'audio_packets'");
            start = true;
        }
예제 #2
0
        private void comboBoxAudioTrack_SelectedIndexChanged(object sender, EventArgs e)
        {
            // Set audio track by index
            m_objMFReader.PropsSet("audio_track", comboBoxAudioTrack.SelectedIndex.ToString());

            MFFrame pFrame;

            m_objMFReader.SourceFrameGetByTime(-1, -1, out pFrame, "");
            mAudioMeter1.pFrame = pFrame;
            mAudioMeter1.UpdateControl();
            mAudioMeter1.SetValues();
        }
예제 #3
0
 private void receiveStream_btn_Click(object sender, EventArgs e)
 {
     m_objReaderStream = new MFReaderClass();
     m_objReaderStream.PropsSet("network.open_async", "true");
     m_objReaderStream.ReaderOpen(URL_txb.Text, "open_url.max_wait = 10000");
     startStream = true;
 }
예제 #4
0
        private void Start_btn_Click(object sender, EventArgs e)
        {
            saveFileDialog1 = new SaveFileDialog();
            if (saveFileDialog1.ShowDialog() == DialogResult.OK && saveFileDialog1.FileName != string.Empty)
            {
                savePath  = saveFileDialog1.FileName;
                count     = 0;
                startTime = DateTime.Now;
                m_objReader.PropsSet("experimental.mfcodecs", "true");
                m_objReader.PropsSet("experimental.out_video_packets", "true");
                m_objReader.PropsSet("external_process", "false");
                m_objReader.ReaderOpen(openPath, "");

                //m_objWriter.PropsSet("external_process", "false");
                //m_objWriter.WriterSet(savePath, 0, "format='mp4' video::codec='packets' audio::codec='audio_packets'");// video::codec='n264' audio::codec='aac'"); //

                start = true;
            }
        }
예제 #5
0
        private void Button1_Click(object sender, EventArgs e)
        {
            reader.PropsSet("experimental.mfcodecs", "true");
            reader.PropsSet("experimental.out_video_packets", "true");
            reader.PropsSet("external_process", "false");
            reader.ReaderOpen(@"M:\TEST_VIDEOS\Moneyball.2011.720p.BluRay.x264-HiDt.mkv", "");

            writer.PropsSet("external_process", "false");
            writer.WriterSet(@"M:\TempVideo\mariovideo.mp4", 0, "format='mp4' video::codec='packets' audio::codec='audio_packets'");
            //writer.PropsSet("rate_control", "true");
            //writer.PropsSet("pull_mode", "false");


            var w = new Stopwatch();

            w.Start();

            DateTime start = DateTime.Now;

            while (count <= 2000)
            {
                count++;
                if (count >= 1000)
                {
                    MFFrame frame;
                    reader.SourceFrameGet(-1, out frame, "");
                    writer.ReceiverFramePut(frame, -1, "");
                    prev.ReceiverFramePut(frame, -1, "");
                    Marshal.ReleaseComObject(frame);

                    BeginInvoke(new InvokeDelegate(UpdateLabel));
                }
            }
            DateTime end = DateTime.Now;

            w.Stop();
            writer.WriterClose(0);
            reader.ReaderClose();
            int dif = (end.Millisecond + end.Second * 1000 + end.Minute * 60 * 1000) - (start.Millisecond + start.Second * 1000 + start.Minute * 60 * 1000);

            button1.Text = "END. Dif ==" + dif.ToString();
        }
예제 #6
0
        private void Form1_Load(object sender, EventArgs e)
        {
            m_objPrev = new MFPreviewClass();
            m_objRed  = new MFReaderClass();
            m_objRed.PropsSet("external_process", "false");
            m_objWriter = new MFWriterClass();
            m_objWriter.PropsSet("external_process", "false");

            m_objWriter.WriterSet("", 0, "");

            m_objRed.ReaderOpen(openFilePath_txb.Text, "");
            m_objWriter.WriterSet(savePath_txb.Text, 0, @"format='mp4' video::codec='n264' video::size='720x1080' audio::codec='aac'");

            m_objPrev.PreviewWindowSet("", prevPanel.Handle.ToInt32());
            m_objPrev.PreviewEnable("", 1, 1);


            cancelSource        = new CancellationTokenSource();
            m_threadWorker      = new Thread(() => thread_DoWork(cancelSource.Token));
            m_threadWorker.Name = "thread_DoWork";
            //m_threadWorker.Start();
        }