c#_FFMPEG使用心得(推流与拉流)

以辅助进程通过CMD启动FFMPEG推流(需要启动nginx流服务器(或者其他流服务器),否则FFMPEG会报错)

FFMPEG = new Process();
FFMPEG.StartInfo.FileName = "cmd.exe";
FFMPEG.StartInfo.CreateNoWindow = true;//在已存在控制台时,此参数无效
FFMPEG.StartInfo.UseShellExecute = false;
FFMPEG.StartInfo.RedirectStandardInput = true;
FFMPEG.StartInfo.RedirectStandardOutput = true;
if (FFMPEG.Start())
{
//重定向
FFMPEG.StandardInput.WriteLine("cd /d " +"......\FFPEMG\bin");
FFMPEG.StandardInput.Flush();
//以下方式选一个
//此为USB摄像头
FFMPEG.StandardInput.WriteLine("ffmpeg -thread_queue_size 1000 -r 30 -f dshow -i video='Cam' -vcodec libx264 -acodec copy -preset:v ultrafast -tune:v zerolatency -max_delay 10 -g 50 -sc_threshold 0 -f flv rtmp://127.0.0.1:1935/live/home1");//video=摄像头名称
FFMPEG.StandardInput.Flush();
//此为网络摄像头
FFMPEG.StandardInput.WriteLine("ffmpeg -thread_queue_size 1000 -r 30 -i rtsp://" + UserName + ":" + Password + "@" + IP + " -vcodec libx264 -acodec copy -preset:v ultrafast -tune:v zerolatency -max_delay 10 -g 50 -sc_threshold 0 -f flv rtmp://127.0.0.1:1935/live/home1");
FFMPEG.StandardInput.Flush();
//此为屏幕推流
FFMPEG.StandardInput.WriteLine("ffmpeg -thread_queue_size 1000 -r 30 -f gdigrab -i desktop -vcodec libx264 -acodec copy -preset:v ultrafast -tune:v zerolatency -max_delay 10 -g 50 -sc_threshold 0 -f flv rtmp://127.0.0.1:1935/live/home1");
FFMPEG.StandardInput.Flush();

通过CMD使用FFPLAY拉流播放

FFPlay = new Process();
FFPlay.StartInfo.FileName = "cmd.exe";
FFPlay.StartInfo.CreateNoWindow = true;
FFPlay.StartInfo.UseShellExecute = false;
FFPlay.StartInfo.RedirectStandardInput = true;
FFPlay.StartInfo.RedirectStandardOutput = true;
if (FFPlay.Start())
{
FFPlay.StandardInput.WriteLine("cd /d " ".....\FFPEMG\bin");
FFPlay.StandardInput.Flush();
FFPlay.StandardInput.WriteLine("ffplay -fflags nobuffer rtmp://127.0.0.1:1935/live/home1");
FFPlay.StandardInput.Flush();
//拉流成功会弹出以“rtmp://127.0.0.1:1935/live/home1”为标题的窗口
//通过查找标题得到窗口句柄,可以嵌入c# WinForm/WPF窗体中
}
————————————————
版权声明:本文为CSDN博主「迷失彩虹海」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_38069903/article/details/114403597

原文地址:https://www.cnblogs.com/javalinux/p/14506199.html