【问题标题】:Size of black bars in video?视频中黑条的大小?
【发布时间】:2015-03-01 23:53:03
【问题描述】:

我正在使用 MediaElement 开发 WPF C# 视频播放器。
一些视频的顶部和底部包含黑条。我想将图片大小调整为 120%,以便在播放这些视频时不显示黑条。
现在的问题是如何测量黑条的大小。如果即视频的高度为 800 像素,我想测量黑条的高度。如果顶部有 50 个黑色像素,底部有 50 个像素,那么我将计算出我必须调整图片的大小,即调整为 112%。
我想我可以截取视频,然后分析该图片以找出顶部和底部有多少黑色像素(我不知道这会有多复杂)。但我想并希望有一种更简单的方法可以做到这一点。有什么想法吗?

【问题讨论】:

  • 您确定这些黑条是视频内容吗?在我看来,这与 MediaElement 容器中的宽高比和自动视频内容有关。您是否尝试过使用“标准”媒体播放器播放这些视频,例如。 G。 Windows Media、VLC 还是 MPC?
  • @dymanoid:我确定是视频。我理解您的评论,在某些情况下,由于长宽比的原因,视频显然没有填满屏幕的某些部分。但也有一些视频包含黑条。
  • 嗯,这将是一项艰巨的工作。首先,您必须在视频中找到一个非黑帧,它可能是第 1 帧或第 100 帧。仅使用 WPF 的MediaElement 并不容易。您可以使用例如一个接一个地抓取帧。 RenderTargetBitmap,但我想这需要很多时间。在您搜索时,用户将首先看到未缩放的视频。也许您应该考虑使用 DirectShow 或 Media Foundation 来完成这项任务。

标签: c# wpf video mediaelement


【解决方案1】:

这是我回答的开始:我刚刚用截图写了一个快速而肮脏的解决方案。
我使用 RenderTargetBitmap 创建了一个具有视频高度但只有 1 个像素宽的屏幕截图。然后我使用 BitmapSource.CopyPixels 方法提取单个像素,然后从上到下循环遍历像素。它可以工作,而且对我来说工作得足​​够快(整个过程 完成后我会发布完整的代码。
如果有更简单的方法可以做到这一点,我仍然很感兴趣。我自己的答案只是一个答案,但我很乐意接受更好的“答案”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-16
    • 1970-01-01
    • 2022-01-09
    • 2017-12-30
    • 2014-10-01
    • 2012-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多