C# 视频中黑条的大小?
我正在用MediaElement开发WPF C#视频播放器。C# 视频中黑条的大小?,c#,wpf,video,mediaelement,C#,Wpf,Video,Mediaelement,我正在用MediaElement开发WPF C#视频播放器。 有些视频的顶部和底部都有黑色的条。我想将图片大小调整为120%,以便播放这些视频时不会显示黑色条。 现在的问题是如何测量黑条的大小。如果视频的高度为800像素,我想测量黑条的高度。如果顶部有50个黑色像素,底部有50个像素,那么我将计算必须调整图片大小,即调整到112%。 我想我可以做一个视频截图,然后分析图片,找出顶部和底部有多少黑色像素(我不知道这有多复杂)。但我想并希望有一个更简单的方法来做到这一点。有什么想法吗?这是我回答的开
有些视频的顶部和底部都有黑色的条。我想将图片大小调整为120%,以便播放这些视频时不会显示黑色条。
现在的问题是如何测量黑条的大小。如果视频的高度为800像素,我想测量黑条的高度。如果顶部有50个黑色像素,底部有50个像素,那么我将计算必须调整图片大小,即调整到112%。
我想我可以做一个视频截图,然后分析图片,找出顶部和底部有多少黑色像素(我不知道这有多复杂)。但我想并希望有一个更简单的方法来做到这一点。有什么想法吗?这是我回答的开始:我刚刚用截图写了一个快速而肮脏的解决方案。
我使用RenderTargetBitmap创建了一个屏幕截图,视频的高度只有1像素宽。然后我使用BitmapSource.CopyPixels方法提取单个像素,然后从上到下循环遍历像素。它工作正常,对我来说速度足够快(你确定这些黑条就是视频内容吗?在我看来,这是关于纵横比和自动视频内容在
MediaElement
容器中的匹配。你试过用“标准”播放这些视频吗媒体播放器,例如Windows media、VLC或MPC?@dymanoid:我肯定是视频。我理解你的评论,在某些情况下,由于纵横比的原因,屏幕的某些部分显然没有被视频填满。但是有些视频包含黑条。嗯,这将是一项艰巨的工作。首先,你必须找到一个n在视频中的黑色帧上,它可能是第一帧或第100帧。仅使用WPF的MediaElement
,这并不容易。您可以使用例如RenderTargetBitmap
,一个接一个地抓取帧,但我想这将花费很多时间。而且用户在搜索时会首先看到未缩放的视频。也许您应该这样做考虑DirectShow或媒体基金会来完成这项任务。