Пример #1
0
        private void InitRecord()
        {
            sfd = new SaveFileDialog();
            try
            {
                string   strFormat;
                IMFProps props;
                mWriter.WriterOptionGet(eMFWriterOption.eMFWO_Format, out strFormat, out props);

                string protocol = "";
                props.PropsGet("protocol", out protocol);
                string network = "";
                props.PropsGet("network", out network);

                //if(network == "true" || protocol.Contains("udp") || protocol.Contains("rtmp") || protocol.Contains("rtsp")) && textBoxURL.Text.Length > 0)
                if (sfd.ShowDialog() == DialogResult.OK)
                {
                    mWriter.WriterSet(sfd.FileName, 1, "format = 'webm' video::codec = 'libvpx' audio::codec = 'libvorbis'");
                }
                isRec = true;
            }
            catch (Exception e)
            {
                MessageBox.Show("Error:  " + e.ToString());
            }
        }
Пример #2
0
        private void Start5_btn_Click(object sender, EventArgs e)
        {
            if (!start5)
            {
                OpenFileDialog a = new OpenFileDialog();

                if (a.ShowDialog() == DialogResult.OK)
                {
                    m_objReader5.ReaderOpen(a.FileName, "loop=true");

                    m_objWriter5.WriterSet(SavePath_txb.Text + "\\5.mp4", 0, EncodingConfigs_lsb.SelectedItem.ToString());


                    Path5_txb.Text       = a.FileName;
                    start5               = !start5;
                    Start5_btn.BackColor = start5 ? Color.Green : Color.Red;
                }
            }
            else if (start5)
            {
                start5 = !start5;
                Thread.Sleep(10);
                m_objWriter5.WriterClose(0);
                Start5_btn.BackColor = start5 ? Color.Green : Color.Red;
            }
        }
Пример #3
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;
        }
Пример #4
0
        private void ListBox5_SelectedIndexChanged(object sender, EventArgs e)
        {
            ListBox comboBox = (ListBox)sender;
            string  selected = (string)comboBox.SelectedItem;

            m_objLive5.DeviceSet(eMFDeviceType.eMFDT_Video, comboBox.Items.IndexOf(selected), "");
            m_objLive5.FormatAudioSet(eMFormatType.eMFT_Input, ref auProps);
            m_objWriter5.WriterSet(SavePath_txb.Text + "\\5.mp4", 1, currentEncodingConf);

            Encoder5          = true;
            button5.BackColor = Color.Green;
        }
Пример #5
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();
        }
Пример #6
0
        private void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string  name;
            ListBox comboBox = (ListBox)sender;
            string  selected = (string)comboBox.SelectedItem;

            m_objLive1.DeviceSet(eMFDeviceType.eMFDT_Video, comboBox.Items.IndexOf(selected), "");
            UpdateAuidoList();
            m_objLive1.FormatAudioGetByIndex(eMFormatType.eMFT_Input, AudioProps.SelectedIndex, out auProps, out name);
            m_objLive1.FormatAudioSet(eMFormatType.eMFT_Input, ref auProps);
            m_objWriter1.WriterSet(SavePath_txb.Text + "\\1.mp4", 1, currentEncodingConf);

            Encoder1          = true;
            button1.BackColor = Color.Green;
        }
Пример #7
0
        void OpenFile()
        {
            openFileDialog1 = new OpenFileDialog();
            if (openFileDialog1.ShowDialog() == DialogResult.OK && openFileDialog1.FileName != string.Empty)
            {
                path = openFileDialog1.FileName;
            }

            m_objReader.ReaderOpen(path, "");
            string url = "udp://127.0.0.1:5000?pkt_size=1316";

            m_objWriter.WriterSet(url_txb.Text, 0, config_txb.Text);

            encode = true;
        }
Пример #8
0
        private void Form1_Load(object sender, EventArgs e)
        {
            m_objPreview = new MFPreviewClass();
            m_objReader  = new MFReaderClass();
            m_objWriter  = new MFWriterClass();

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

            m_objPreview.PreviewWindowSet("", panelPrev.Handle.ToInt32());
            m_objPreview.PreviewEnable("", 1, 1);

            cancelSource        = new CancellationTokenSource();
            m_threadWorker      = new Thread(() => thread_DoWork(cancelSource.Token));
            m_threadWorker.Name = "thread_DoWork";
            m_threadWorker.Start();
        }
Пример #9
0
        private void openAndPublish_btn_Click(object sender, EventArgs e)
        {
            OpenFileDialog a = new OpenFileDialog();

            if (a.ShowDialog() == DialogResult.OK)
            {
                m_objReaderFile = new MFReaderClass();
                m_objReaderFile.ReaderOpen(a.FileName, "");
                m_objReaderFile.SourceAVPropsGet(out props);
                starFile = true;
            }
            if (starFile)
            {
                m_objWriter.WriterSet(URL_txb.Text, -1, writerConfig_txb.Text);
            }
        }
Пример #10
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();
        }
Пример #11
0
        void WriterSet()
        {
            m_objWr1.WriterClose(-1);
            Marshal.ReleaseComObject(m_objWr1);
            m_objWr1 = new MFWriterClass();
            string savePath = savePath_txb.Text + number.ToString() + ".mp4";

            m_objWr1.WriterSet(savePath, 0, encodingCon_txb.Text);


            string a = Environment.CurrentDirectory + "\\output\\mformats_test.flv";
            string b = @"format='flv' " +
                       "video::codec='q264hw' video::b='3.7M' video::size='1280x720' video::g='30' " +
                       "audio::codec='aac' audio::b='64K' audio::ar='44100'";



            BeginInvoke(new InvokeDelegate(UpdateList));
            number++;
        }
Пример #12
0
        private void buttonStartRec_Click(object sender, EventArgs e)
        {
            SaveFileDialog sfd = new SaveFileDialog();

            try
            {
                string   strFormat;
                IMFProps props;
                m_objWriter.WriterOptionGet(eMFWriterOption.eMFWO_Format, out strFormat, out props);
                if (audio_channels.Checked)
                {
                    m_objLive.PropsSet("audio_channels", "0+2+4+6,1+3+5+7,0,1,2,3,4,5,6,7");
                }
                string sProtocol;
                props.PropsGet("protocol", out sProtocol);
                if (sProtocol == null)
                {
                    sProtocol = "";
                }
                string bNetwork = "";
                props.PropsGet("network", out bNetwork);

                if ((bNetwork == "true" || sProtocol.Contains("udp") || sProtocol.Contains("rtmp") || sProtocol.Contains("rtsp")) && textBoxURL.Text.Length > 0)
                {
                    try
                    {
                        m_objWriter.WriterSet(textBoxURL.Text, 0, textBoxConfig.Text);
                        rec = true;
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.ToString());
                    }
                }
                else if (strFormat == "Auto Select")
                {
                    sfd.Filter = "MPEG files (*.mp4)|*.mp4|All Files (*.*)|*.*";

                    if (sfd.ShowDialog() == DialogResult.OK)
                    {
                        m_objWriter.WriterSet(sfd.FileName, 0, " format='mp4' video::codec='mpeg4' video::b='5M' audio::codec='aac'");
                        rec = true;
                    }
                }
                else
                {
                    //Choose file extension
                    string strExtensions;
                    props.PropsGet("extensions", out strExtensions);
                    Marshal.ReleaseComObject(props);

                    string[] arrExt       = strExtensions.Split(',');
                    string   strFilterExt = ""; // (*.yyy;*.xxx)
                    for (int i = 0; i < arrExt.Length; i++)
                    {
                        if (strFilterExt.Length > 0)
                        {
                            strFilterExt += ";*." + arrExt[i];
                        }
                        else
                        {
                            strFilterExt = "*." + arrExt[i];
                        }
                    }

                    sfd.Filter = strFormat + " Files (" + strFilterExt + ")|" + strFilterExt + "|All Files (*.*)|*.*";

                    if (sfd.ShowDialog() == DialogResult.OK)
                    {
                        m_objWriter.WriterSet(sfd.FileName, 0, textBoxConfig.Text);
                        rec = true;
                    }
                }
            }
            catch (Exception)
            { }
        }