Jus*_*gin 3 c# desktop ffmpeg video-streaming live-streaming
我正在尝试用C#创建桌面直播应用.该程序必须在Windows下运行,并将图像从用户桌面流式传输到rtmp.还必须有帧率,视频大小,质量和编解码器选项(h263和h264).我认为FFmpeg是最好的选择(如果不是这样,请写评论).我已经设法使用控制台使用ffmpeg.exe执行上面提到的所有操作.所以我想知道,我可以将FFmpeg库包含到C#项目中(作为.lib或.dll)来使用它代替.exe,为我的任务保存合适的功能吗?我会非常感谢任何例子.
PS以下是我使用的命令的一些示例:
ffmpeg -f dshow -i video=UScreenCapture -vcodec h264 -pix_fmt yuv420p -s 320x240 -f flv rtmp://[my adr]/desc
ffmpeg -f dshow -i video=UScreenCapture -vcodec h264 -r 15 -t 0:1:00 -q 12 -pix_fmt yuv420p -s 320x240 -f flv rtmp://[my adr]/desc
Run Code Online (Sandbox Code Playgroud)
小智 8
这是我的样本,希望对此有所帮助
您可以像这样使用.exe文件:
ffmpeg.StartInfo.UseShellExecute = false;
ffmpeg.StartInfo.RedirectStandardOutput = true;
ffmpeg.StartInfo.FileName = Server.MapPath("~/Video_Clips/ffmpeg.exe");
ffmpeg.StartInfo.Arguments = String.Format(@"-i ""{0}"" -threads 8 -f webm -aspect 16:9 -vcodec libvpx -deinterlace -g 120 -level 216 -profile 0 -qmax 42 -qmin 10 -rc_buf_aggressivity 0.95 -vb 2M -acodec libvorbis -aq 90 -ac 2 ""{1}""",
Server.MapPath("~/Video_Clips/" + sNameWithoutExtension + ".wmv"),
Server.MapPath("~/Video_Clips/" + sNameWithoutExtension + ".webm"));
ffmpeg.Start();
ffmpeg.WaitForExit();
Run Code Online (Sandbox Code Playgroud)