我使用的是ffmpeg.org,当我在命令行中运行ffmpeg -y -f vfwcap -r 25 -i 0 out.mp4
时,我可以从我的摄像头中抓取视频并将其写入out.mp4
文件。但是,我无法在任何地方看到该流。我想在c#中编写一些基于ffmpeg功能的简单包装,到目前为止,我在Stack before上发现了帖子,但没有关于实时显示数据(而不是将其保存到文件中)的信息。有没有人有任何经验呢?我是否可以在图片框或其他组件上“画”从网络摄像头接收到的数据? 谢谢!有没有在c#应用程序中使用ffmpeg的方法?
0
A
回答
1
您可以使用MediaElement
或MediaPlayer
控件。
MediaElement是UIElement,受布局支持,可以作为许多控件的内容消耗 。它也可用于 可扩展应用程序标记语言(XAML)以及代码。另一方面,MediaPlayer专为绘图对象设计, 缺乏布局支持。使用MediaPlayer加载的媒体只能是使用VideoDrawing呈现的 或通过直接与 DrawingContext进行交互。 MediaPlayer无法在XAML中使用。
- 的MediaElement
样品XAML:
<MediaElement Source="path\to\out.mp4" Name="myMediaElement"
Width="450" Height="250" LoadedBehavior="Manual" UnloadedBehavior="Stop" Stretch="Fill"
MediaOpened="Element_MediaOpened" MediaEnded="Element_MediaEnded"/>
- MediaPlayer的
//
// Create a VideoDrawing.
//
MediaPlayer player = new MediaPlayer();
player.Open(new Uri(@"sampleMedia\xbox.wmv", UriKind.Relative));
VideoDrawing aVideoDrawing = new VideoDrawing();
aVideoDrawing.Rect = new Rect(0, 0, 100, 100);
aVideoDrawing.Player = player;
// Play the video once.
player.Play();
2
一个在你的链接文章的评论中这样说:
如何围绕FFmpeg的原生界面 编写C++/CLI包装,然后调用你的包装接口从你的应用程序?
我想这正是你想要做的。 (请注意,FFmpeg在最近版本的Visual Studio中工作良好,因此对此评论的链接帖子中的响应不适用。)
您基本上会创建一个摄像头输入(它生活在libavdevice),然后你将它编码到h464的mp4容器中(见output_example.c)。要获得实时显示,您需要从vfwcap源生成数据,对其进行解码(使用libavcodec中的“rawvideo”解码器)。这给你一个AVFrame,它有数据指针在你的应用程序的任何本地UI元素中显示图像,通常使用direct3d或opengl。阅读documentation了解更多关于这一切的信息。
相关问题
- 1. 没有`apply`方法的应用程序?
- 2. 有没有办法在我的应用程序中使用mstest
- 3. 有没有办法在.NET Framework 2中使用C#应用程序中的linq?
- 4. 有没有办法使用的ffmpeg
- 5. 有没有在iOS应用程序的webview中使用Chrome的方法?
- 6. 有没有办法让C#中的应用程序iphone
- 7. 有没有一种方法可以在C++应用程序和C#应用程序之间进行通信?
- 8. 有没有移动应用程序支付用户的方法?
- 9. NSManagedObjects在没有UI的应用程序中的基本方法
- 10. 有没有办法在Java Android应用程序或Obj-C iOS应用程序中使用Xamarin代码?
- 11. 有没有更安全的方法在商业应用中包含FFMpeg?
- 12. 有没有简单的方法直接在我的android应用程序上使用c/C++源代码?
- 13. 有没有简单的方法在代码中使用ffmpeg的x264预设?
- 14. 有没有在JSF应用程序中用Spring注入HttpSession的方法?
- 15. 在我的iphone应用程序中使用C库(ffmpeg)
- 16. 没有SQL Server的C#应用程序
- 17. 有没有联合PeopleSoft HRMS应用程序内容的方法?
- 18. 有没有来电时打开iPhone应用程序的方法?
- 19. 有没有办法在多线程应用程序中安全地使用errno?
- 20. 有没有办法在我的asp.net应用程序的类中使用Server.MapPath
- 21. 有没有在forloop C#中使用orderby的方法?
- 22. 有没有办法在我的应用程序中使用外语字符?
- 23. 在java SE应用程序(使用netbeans)中有没有picturebox
- 24. 有没有办法在Windows 10通用应用程序中使用restsharp?
- 25. 有没有办法从java执行Objective-C应用程序?
- 26. 在C#应用程序中使用现有的C++代码
- 27. 有没有什么方法在我的应用程序中嵌入egrep和wget?
- 28. 有没有办法允许Delphi应用程序使用Hazelcast?
- 29. 有没有在存储过程中使用sleep()的方法?
- 30. 有没有办法在java中使用类似于c#的引用(@“”)的方法
谢谢,这是一个很好的开始,但是我想把那里的实时视图,而不是'out.mp4',你知道我怎么能改变Source标签呢? – randomuser1
源是一个URI,所以'
aergistal