Esempio n. 1
0
    void SendVideo()
    {
        if (UnityEngine.WebCamTexture.devices.Length == 0)
        {
            return;
        }

        string opt = "-y -f dshow -i video=\"" + UnityEngine.WebCamTexture.devices[0].name + "\":audio=\"" + UnityEngine.Microphone.devices[0] + "\""
                     + " -f flv rtmp://ec2-13-126-154-86.ap-south-1.compute.amazonaws.com/live" + (SkypeManager.Instance.isCaller ? "/caller" : "/receiver")
                     + " -f image2pipe -vcodec mjpeg -";

        print(opt);

        var info = new ProcessStartInfo(ffmpegPath, opt);

        info.UseShellExecute        = false;
        info.CreateNoWindow         = true;
        info.RedirectStandardInput  = false;
        info.RedirectStandardOutput = true;
        info.RedirectStandardError  = false;

        senderProcess                     = new Process();
        senderProcess.StartInfo           = info;
        senderProcess.EnableRaisingEvents = true;
        senderProcess.Exited             += new EventHandler(ProcessExited);
        senderProcess.Disposed           += new EventHandler(ProcessDisposed);
        senderProcess.OutputDataReceived += new DataReceivedEventHandler(ProcessOutputDataReceived);
        senderProcess.ErrorDataReceived  += new DataReceivedEventHandler(ErrorDataReceived);
        senderProcess.Start();

        streamReceiver = new StreamReceiver(senderProcess.StandardOutput, senderImage, textureSize);
        streamReceiver.StartReceivingStream();
    }
Esempio n. 2
0
    public void StartVideoSender()
    {
        Application.runInBackground = true;

        ffmpegPath = FFmpegConfig.BinaryPath;

        //         string path = "InputVideo/input%03d.mp4";

        // #if UNITY_EDITOR
        //         path = Application.dataPath.Replace("/Assets", "") + "/" + path;
        // #elif UNITY_STANDALONE
        //      path = Application.streamingAssetsPath + "/" + path;
        // #endif

        // var opt = "-y -i http://123.176.34.172:8090/test1.mpg -f segment -reset_timestamps 1 " + path;

        // string opt = "-y -re -rtbufsize 100M -f dshow -i video=\"" + UnityEngine.WebCamTexture.devices[0].name + "\":audio=\"" + UnityEngine.Microphone.devices[0]
        //  + "\" http://13.126.154.86:8090/"
        //  + (SkypeManager.Instance.isCaller ? "feed1.ffm" : "feed2.ffm") + " -f segment -segment_time 2 -reset_timestamps 1 -vcodec libvpx -b 465k -pix_fmt yuv420p -profile:v baseline -preset ultrafast  " + path;

        if (UnityEngine.WebCamTexture.devices.Length == 0)
        {
            return;
        }

        // string opt = "-y -re -rtbufsize 1024M -f dshow -video_size 640x480 -framerate 24  -i video=\"" + UnityEngine.WebCamTexture.devices[0].name + "\":audio=\"" + UnityEngine.Microphone.devices[0] + "\""
        //     + " http://13.126.154.86:8090/"
        //     + (SkypeManager.Instance.isCaller ? "feed1.ffm" : "feed2.ffm")
        //     + " -f image2pipe -vcodec mjpeg -";

        string opt = "-y -f dshow -i video=\"" + UnityEngine.WebCamTexture.devices[0].name + "\":audio=\"" + UnityEngine.Microphone.devices[0] + "\""
                     + " http://13.126.154.86:8090/"
                     + (SkypeManager.Instance.isCaller ? "feed1.ffm" : "feed2.ffm")
                     + " -f image2pipe -vcodec mjpeg -";

        //     string opt = "-y -f dshow -i video=\"" + UnityEngine.WebCamTexture.devices[0].name + "\":audio=\"" + UnityEngine.Microphone.devices[0] + "\""
        //    + " -f image2pipe -vcodec mjpeg -";

        var info = new ProcessStartInfo(ffmpegPath, opt);

        UnityEngine.Debug.Log(opt);

        info.UseShellExecute        = false;
        info.CreateNoWindow         = true;
        info.RedirectStandardInput  = false;
        info.RedirectStandardOutput = true;
        info.RedirectStandardError  = false;

        senderProcess                     = new Process();
        senderProcess.StartInfo           = info;
        senderProcess.EnableRaisingEvents = true;
        senderProcess.Exited             += new EventHandler(ProcessExited);
        senderProcess.Disposed           += new EventHandler(ProcessDisposed);
        senderProcess.OutputDataReceived += new DataReceivedEventHandler(ProcessOutputDataReceived);
        senderProcess.ErrorDataReceived  += new DataReceivedEventHandler(ErrorDataReceived);
        senderProcess.Start();

        streamReceiver = new StreamReceiver(senderProcess.StandardOutput, senderImage, textureSize);
        streamReceiver.StartReceivingStream();
    }
Esempio n. 3
0
    void ReceiveStream()
    {
        // var opt = " -i http://123.176.34.172:8090/" + (SkypeManager.Instance.isCaller ? "test2.mpg" : "test1.mpg") + "-g 60 -map 0 -vcodec rawvideo -f segment -reset_timestamps 1 -segment_format rawvideo -pix_fmt rgb24 " + Application.persistentDataPath
        //             + "/out%03d.seg";

        // string opt = "-y -i http://13.126.154.86:8090/" + (SkypeManager.Instance.isCaller ? "test2.mpg" : "test1.mpg") + " -f segment -segment_time 2 -reset_timestamps 1 -vcodec libx264 -b 465k -pix_fmt yuv420p -profile:v baseline -preset ultrafast " + path;

        string opt = "-y -i rtsp://13.126.154.86:5454/" + (SkypeManager.Instance.isCaller ? "caller.mpeg4" : "caller.mpeg4") + " -f image2pipe -vcodec mjpeg -";

        // string opt = "-nostdin -y -i http://13.126.154.86:8090/callerAudio.mp3 -f s16le -acodec pcm_s16le -";

        print(opt);

        ProcessStartInfo info = new ProcessStartInfo(ffmpegPath, opt);

        info.UseShellExecute        = false;
        info.CreateNoWindow         = true;
        info.RedirectStandardInput  = false;
        info.RedirectStandardOutput = true;
        info.RedirectStandardError  = false;

        receiveProcess                     = new Process();
        receiveProcess.StartInfo           = info;
        receiveProcess.EnableRaisingEvents = true;
        receiveProcess.Exited             += new EventHandler(ProcessExited);
        receiveProcess.Disposed           += new EventHandler(ProcessDisposed);
        receiveProcess.OutputDataReceived += new DataReceivedEventHandler(ProcessOutputDataReceived);
        receiveProcess.ErrorDataReceived  += new DataReceivedEventHandler(ErrorDataReceived);

        receiveProcess.Start();

        streamReceiver = new StreamReceiver(receiveProcess.StandardOutput, receiverImage, textureSize);
        streamReceiver.StartReceivingStream();

        soundStreamReceiver = new SoundStreamReceiver();
        soundStreamReceiver.StartReceivingAudio();
    }