Tag: video

在WPF中调试未处理的exception

我有一个复杂的WPF应用程序,用于某种PA系统。 它会不时地显示video,有时它会在屏幕上播放音乐和不同的文字信息。 结构很简单。 有一个服务器有2种方法。 SetMessage( “字符串”); 和GetMessage(“String”); 客户端在5秒内通过WCF上的HTTP绑定连接到服务器并提取GetMessage()。 Admin app连接到服务器并调用SetMessage()。 在App.xml.cs中,我有一个处理程序,用于CurrentDomain_UnhandledException,OnDispatcherUnhandledException,TaskScheduler.UnobservedTaskException和application.Current.DispatcherUnhnandledException。 所有人都假设要做nlog并继续操作。 应用程序中有一个页面使用Media元素播放短video。 播放video后不时发生应用程序崩溃。 EventType : clr20r3 P1 : Client.exe P2 : 0.0.2.0 P3 : 5226863e P3 : mscorlib P5 : 4.0.0.0 P6 : 4ba1da6f P7 : 219 P8 : 10 P9 : system.invalidoperaionexception 现在这一切都很酷。 然而问题是: 尽管有4个不同的exception处理程序,我仍然在寻找exception 我无法在客户端计算机上进行调试 错误是随机的,但在我播放video后发生。 用于停止和启动video的代码位于Dispatcher.Invoke(新操作)中。 在停止播放video之前,我可能会离开页面并切换到另一个页面。 看起来我只是违反了一些访问并尝试从另一个线程中更改代码中的内容。 有趣的是,我试图做ILDasm并找到P7:219并且代码中没有。 有没有什么办法可以捕获那个怪异的例外? (我实际上花了大约30分钟,试图在这里找到任何类似的问题,但我的代码中已经应用了所有解决方案) […]

使用VlcDotNet库显示video

我在Visual Studio 2012中创建了一个C#Windows窗体应用程序,并在此网页中添加了dll: http : //vlcdotnet.codeplex.com/我已经获得了使用此代码的video: VlcControl player = new VlcControl(); Vlc.DotNet.Core.Medias.MediaBase media = new Vlc.DotNet.Core.Medias.PathMedia(@”path\movie.avi”); player.Media = media; player.Play(); 但是它显示在另一个窗口中,我无法控制它。 我如何在我的表单中嵌入video? 我还没有找到任何关于如何以编程方式执行此操作的文档。 教程中的大多数人都在他们的工具箱中列出了某种vlc控件,但我没有,所以我需要使用代码。 我尝试使用面板作为VlcControl的父级: player.Parent=panel1; 电影仍在播放,但没有video,只有声音。 我应该使用什么样的容器以及如何让它显示video? 更多信息:这里: VLC.DotNet控件在WPF中托管,据说可以在WPF中的WindowsFormsHost元素中嵌入video。 但是,在Windows窗体应用程序中,只有ElementHost可供我使用。 我可以使用它来嵌入video,如果是,怎么样?

在C#中拆分,编码和连接video部分

可以将文件分成许多部分。是否可能每个部分都编码,然后再次加入它们? 这个想法是在一台计算机上编码一个video。 在.NET中谢谢

MediaInfo Helper。获取video流的基本video信息()失败

我需要使用LibVLC播放网络流video“ http://www.wowza.com/_h264/Butterfly_256K.mp4 ”,我完成了代码和必要的事情。 我可以播放video,但我无法通过API获取有关video的信息: MediaInfoHelper.Get BasicVideoInfo() 。 当我通过URL时,我得到exception:“找不到文件” 我做的代码是: var stream1Info = MediaInfoHelper.GetBasicVideoInfo(mediaInputStream1.Source); var stream2Info = MediaInfoHelper.GetBasicVideoInfo(mediaInputStream2.Source); lblFrmRateFirstStream.Text = stream1Info.Fps + ” fps”; lblFrmRateSecondStream.Text = stream2Info.Fps + ” fps”; lblBandWidthFirstStream.Text = ConvertBytesToMegabytes(stream1Info.Bitrate / 8) + ” Mbps”; lblBandWidthSecondStream.Text = ConvertBytesToMegabytes(stream2Info.Bitrate / 8) + ” Mbps”; 它适用于本地文件。 但不是流媒体video。 然后我尝试公开VLC自己的代码来获取数据。 它包含libvlc_media_player_get_fps()方法。 但是它给了我0.0的流和正确的本地值。 我怀疑VLC播放器是如何获取这些信息的。

C#Windows窗体从嵌入的Windows Media Player中捕获图像

我有一个用C#编写的Windows窗体应用程序,它使用嵌入式Windows Media Player(AxInterop.WMPLib.dll和WMPLib.dll)播放一些video文件。 现在我需要添加一个选项,以便在按钮点击时从video中捕获图像。 如果我将无窗口选项设置为true,我可以捕获video图像,但是当我将无窗口选项设置为true时,我在某些计算机上看不到video图像。 如果没有无窗口选项,我只会使用以下代码获得黑屏: System.Drawing.Image ret = null; try{ Bitmap bitmap = new Bitmap(wmPlayer.Width-26, wmPlayer.Height-66); { Graphics g = Graphics.FromImage(bitmap); { Graphics gg = wmPlayer.CreateGraphics(); { this.BringToFront(); g.CopyFromScreen( wmPlayer.PointToScreen( new System.Drawing.Point()).X+13, wmPlayer.PointToScreen( new System.Drawing.Point()).Y, 0, 0, new System.Drawing.Size( wmPlayer.Width-26, wmPlayer.Height-66) ); } } using (MemoryStream ms = new MemoryStream()){ bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Png); ret = […]

如何在WPF中向后播放video?

我希望在WPF中顺利播放video。 我正在使用MediaElement播放video。 我读过这篇文章建议定期更改MediaElement.Position以模仿倒带行为。 我尝试使用代码来更改MediaElement.Position位置 private void Button_Click(object sender, RoutedEventArgs e) { mePlayer.Pause(); //Pause the media player first double m = 1 / frameRate; //Calculate the time for each frame double t = 120; //Total length of video in seconds mePlayer.Position = TimeSpan.FromMinutes(2); //Start video from 2 min while (t >= 60) //Check if time exceeds […]

为什么MediaElement有时会无声地失败,我该如何纠正呢?

在我的WPF项目中,我创建了一个包含多个MediaElements播放video的视图。 有时,在一个或所有MediaElements之间的任何地方都无法播放分配给它们的video,而是显示黑色矩形,或根本不显示。 发生这种情况时,不会发生MediaFailed事件。 即使不播放video,MediaOpened事件也会在所有MediaElements上出现。 我已经为我的显卡安装了最新的驱动程序,这对此问题没有任何影响。 是否有一个程序可以用来确保每个MediaElement一直播放? 示例源代码如下。 包含video文件的完整示例项目位于github, url为https://github.com/duggulous/MediaElementIssueExample MainWindow.xaml MainWindow.xaml.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace VideoDemo { /// /// Interaction logic for MainWindow.xaml /// public partial class MainWindow : Window […]

如何在不使用剪贴板的情况下复制图像?

问题:我有以下代码从网络摄像头捕获图像。 我的问题是这部分: SendMessage(hCaptureWnd, WM_CAP_COPY, 0, 0); // copy it to the clipboard 它的作用是将图像从窗口复制到剪贴板,然后从中创建一个字节数组。 它可以工作 – 只要你在程序运行时不使用剪贴板。 问题是,这对我自己来说甚至都不起作用,因为我有时会在Visual Studio需要很长时间来复制某些内容来开始调试Web应用程序,然后崩溃。 所以我的问题在这里: 如何在不使用剪贴板的情况下获取图像? 或者更具体地说,如何将hCaptureWnd转换为System.Drawing.Image? – 编辑: 我错过了说“没有创建文件,我想要一个字节数组”。 它是一个Web应用程序,因此运行应用程序的用户不应具有对文件系统的写访问权限(仅写入文件进行临时测试)… – 结束编辑: /// /// Captures a frame from the webcam and returns the byte array associated /// with the captured image /// /// number of milliseconds to wait between connect […]

在C#中渲染图像序列以制作video

我有一系列jpg图像,我正在捕捉并渲染到屏幕上以创建video。 我正在使用JpegBitmapDecoder从MemoryStream解压缩图像,并通过在Image控件上设置Source来渲染它。 这似乎工作正常,但处理器开销很高。 这些图像是1280×720,运行速度为30fps,我几乎可以跟上我的电脑(双核2.8Ghz)。 以更高的分辨率运行会导致我丢掉帧。 我想尝试降低cpu利用率。 花费的大部分时间似乎都在解码中(单独解码的简单基准测试在我的机器上显示我可以解码大约40fps)。 有谁知道是否有更快的解码器可用(DirectX?DirectShow?我可以卸载到video卡的东西?) 至于渲染,似乎Image控件不是为这种类型的使用而设计的(我实际上对它起作用感到惊讶,我只是尝试了它,因为它很容易做到)。 是否有另一种方法来渲染可能更快的单个帧?

Xamarin Android C#video大小调整

我需要将video发送到服务器。 video大小随机不同,有些可能是Meg,有些可能是900Mb ..如何将video调整为较小的尺寸? 我可以获得iOS示例,但没有找到任何Android版本。