在C#项目中使用FFmpeg

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)

  • 谢谢您的回答,这真的很有帮助。问题是,我无法使用 VS-2010 打开您的项目,也无法使用 VS-2012 打开您的项目。事实上,我不需要它来理解你的答案(你的评论就足够了),但我看它很有趣。我怎样才能打开你的项目? (2认同)