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(); }
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(); }
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(); }