首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C#项目中使用FFmpeg

在C#项目中使用FFmpeg
EN

Stack Overflow用户
提问于 2013-04-02 15:04:03
回答 2查看 20.9K关注 0票数 4

我正在尝试用C#创建一个桌面直播应用。该程序必须运行在Windows和流式图像从用户的桌面到rtmp。还必须有帧率,视频大小,质量和编解码器(h263和h264)的选项。我认为FFmpeg是最好的选择(如果不是这样,请写评论)。我已经成功地使用console在ffmpeg.exe中完成了上面提到的所有操作。所以我想知道,我是否可以将FFmpeg库包含到C#项目中(作为.lib或.dll),以代替.exe使用它,从而为我的任务保存合适的功能?我将非常感谢任何例子。

附注:下面是我使用的一些命令示例:

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-02 15:09:23

我是my sample,希望能帮上忙

您可以像这样使用.exe文件:

代码语言:javascript
复制
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();
票数 10
EN

Stack Overflow用户

发布于 2018-08-18 03:16:08

我知道这有点老了,但如果我到了这里,其他人也会看到这一点。你不应该使用它的进程信息来启动ffmpeg。这与它有很大的关系。只要使用任何包装器即可。我犯了这个错误几乎浪费了我生命中的一年。在Xabe.FFmpeg中,您可以通过运行以下命令来完成此操作

代码语言:javascript
复制
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。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15758114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档