我正在尝试用C#创建一个桌面直播应用。该程序必须运行在Windows和流式图像从用户的桌面到rtmp。还必须有帧率,视频大小,质量和编解码器(h263和h264)的选项。我认为FFmpeg是最好的选择(如果不是这样,请写评论)。我已经成功地使用console在ffmpeg.exe中完成了上面提到的所有操作。所以我想知道,我是否可以将FFmpeg库包含到C#项目中(作为.lib或.dll),以代替.exe使用它,从而为我的任务保存合适的功能?我将非常感谢任何例子。
附注:下面是我使用的一些命令示例:
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发布于 2013-04-02 15:09:23
我是my sample,希望能帮上忙
您可以像这样使用.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();发布于 2018-08-18 03:16:08
我知道这有点老了,但如果我到了这里,其他人也会看到这一点。你不应该使用它的进程信息来启动ffmpeg。这与它有很大的关系。只要使用任何包装器即可。我犯了这个错误几乎浪费了我生命中的一年。在Xabe.FFmpeg中,您可以通过运行以下命令来完成此操作
await Conversion.New().Start(@"-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}");但这只是一个基本用法,因为它提供了流畅的API来使用FFmpeg。
https://stackoverflow.com/questions/15758114
复制相似问题