问题标签 [mpeg-2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5521 浏览

android - 用于解码 MPEG2 视频流的 Android MediaCodec 用法

我正在尝试使用MediaCodecAPI 来解码和显示MPEG2编码流。我用来MediaExtractor从 MPEG 传输流 ( TS) 中提取流。

我注意到configure()解码器在我尝试过的所有设备上都失败了 - Nexus7(2012)、Nexus7(2013)、Nexus10,错误代码为 0x80001001。

configure()使用API时唯一可能出错的参数是提供的MediaFormat配置,这是从 Android 获取的MediaExtractor。我不明白可能出了什么问题导致这个问题引起注意。

对象中存在的配置参数MediaFormat是:

该错误在所有设备上都有些相似,这可能意味着该错误可能源自MediaCodec堆栈中的一个公共实体。这是来自 Nexus7 (2013) 的错误。(0x80001001 – OMX_ErrorUndefined)

这种行为是因为MPEG2不是 Android 平台支持的强制性编解码器,还是我做错了什么?任何有关MPEG2解码器行为的信息将不胜感激。

0 投票
2 回答
2179 浏览

encoding - 将 PTS/DTS 写入 MPEG 流 (Gstreamer)

因此,对于 GNURadio 项目,我将与 PSIP 数据混合的 MPEG-2 视频发送到我的电视。所述数据和视频的实际传递很好,但是视频没有正确解码。大部分都是空白,到处都是闪烁的块,快速移动的场景有更多的“垃圾”。它看起来像这样,除了大部分是黑色的,“块”随机出现和消失。它应该看起来像这样。

在将它添加到混音器进行测试之前,我正在使用 videtestsrc。我尝试了avconv,无论出于何种原因,它都没有这个问题。

这是管道,也在下面:

它在 mpv、SMPlater 和 TSReader 可以播放视频,但是在 mpv 的命令输出中显示的错误是“

和...

知道会发生什么吗?当它是实时源时,如何编写正确的 PTS/DTS 值?是的,我必须使用 MPEG-2 和 gstreamer。

0 投票
0 回答
518 浏览

c - 从 mpeg 视频文件中提取序列头

我也是新手mpeg2dec,我一直在尝试使用 mpeg2.h(from libmpeg2) 从视频文件中提取序列头,但没有得到任何结果。
我尝试获取STATE_SEQUENCE并尝试指向文件中的该位置,但无法将其复制到另一个文件。

在 case 语句中STATE_SEQUENCE:我不想返回位置,而是想将整个序列头写入另一个文件。这是正确的还是不正确的?

0 投票
0 回答
266 浏览

php - 网站上 mpeg2 格式的视频文件

我在一个客户的网站上工作。我正在寻找可以毫无问题地播放 mpeg2 视频的视频播放器。我有所有非常大的视频文件,所以在播放或用户下载 php 之前如何压缩文件大小。如果有人可以推荐一个最好的视频播放器。

0 投票
1 回答
337 浏览

c++ - 有选择地“关闭”多个输出 pin 流 directshow 过滤器

我敢肯定这个问题之前会被问到,但我已经搜索过并且找不到任何具体的帮助解决方案。

我将开始概述最初的担忧,如果需要更深入的技术信息,那么我可以提供。希望最初的问题有足够的信息。

我正在 Visual Studio 2010 中使用 c++ 和 directshow 编写应用程序。主要项目规范是用于实时预览,并且在选择的任何时候,将视频录制到 mpeg2 到硬盘驱动器,然后录制到 dvd 以在标准 dvd 播放器中播放, 实时预览始终不被打断。

捕获似乎是与 directshow 相关的非常简单的标准。

我写了几个自定义过滤器。没什么了不起,但我们想要我们自己的自定义屏幕覆盖信息 - 时间和日期等 - 这必须在预览和录制的文件中。我使用连接到采集卡视频输出引脚的 avi 解压缩器,并将 avi 解压缩器连接到我的过滤器,以提供我可以操作的 rgb 图像。然后,该过滤器的输出通过一个 inftee 过滤器进行拆分,一个进入屏幕,另一个进入 ms mpeg2 编码器。音频从采集卡音频输出到同一个 mpeg2 编码器。mpeg2 编码器的输出然后转到一个文件。然后该文件被创作为 dvd 并刻录到 dvd。

所以我的问题是...

在哪里以及如何是允许通过用户操作仅启动和停止 mpeg2 文件输出的最佳位置?

我尝试使用智能 tee 过滤器 - 1 个视频和 1 个音频作为 mpeg2 编码器之前的最后一个过滤器,然后使用 iamstreamcontrol 接口在适当的时间关闭引脚。这是否会导致最终 mpeg2 出现任何时间问题?由于输出文件将通过 mplayer 和 vlc 等播放,但不会转换为 mpeg2 dvd 兼容(用于测试 - 通过任何 dvd 创作软件 - 损坏文件的投诉和 somteimes 提供时间参考) - 是否有可能在文件有问题并给出错误?如果从捕获开始的第一刻开始捕获文件(而不是在流式传输 5 分钟后),那么一切正常。

我确实考虑过使用流缓冲路由 - http://msdn.microsoft.com/en-gb/library/windows/desktop/dd693041(v=vs.85).aspx - 但我不确定最佳方向拿东西。似乎这可能是最佳方向的几个选择。

任何帮助和提示将不胜感激。特别是如果有 DirectShow 过滤器、图钉、图表的网站/书籍/信息以及它们如何一起流动。

编辑:我正在考虑制作我自己的“Smart Tee”过滤器副本,这样我将有 2 个引脚进入 - 音频和视频 - 4 个输出引脚 - 2 个视频(1 个预览和 1 个捕获)和 2 个音频也一样,但我最终会遇到同样的问题吗?处理“关闭”该自定义过滤器的捕获引脚的正确方法是什么。我会浪费时间做这样的事情吗?这是覆盖输出引脚的活动/非活动方法并发送或不发送样本的简单案例吗?感觉没那么容易?

非常感谢!

0 投票
1 回答
436 浏览

matlab - 将 2 个视频流从一个 MPEG-2 文件分成 2 个文件

我真的是处理视频文件的新手,我有疑问。

我有一个 MPEG-2 文件,其中包含两个按时间同步的视频流(第一个来自 RGB 相机,第二个来自热像仪)。我想将此流分成两个文件(任何格式)。可能吗 ?我可以使用 MATLAB 或其他软件吗?

谢谢你。

0 投票
0 回答
436 浏览

c++ - 如何使用 libav 将视频编码为兼容 dvd 的 mpeg2

我是使用 FFMpeg 的新手,我想做相当于使用命令行选项 -f dvd 但在我的应用程序中使用 libav api。在 FFMpeg 的源代码中,该选项将一些参数设置为

这些与 libav api 有什么关系?

传入的视频帧在 yuv420p 格式的 720x576 pal 的正确分辨率。我的一些参数...

AVDictionary... 什么是字典?它与编码过程有何关系?它只是一个用于在代码周围传递一组设置的用户字典吗?

最终,我希望能够对 pal dvd 已经具有正确大小和格式的传入视频帧进行转码,并输出符合 dvd 的 mpeg2 视频(2048 字节的数据包)。我了解 mpeg2 视频格式,但我对 ffmpeg 参数感到困惑。

谢谢!

0 投票
2 回答
703 浏览

c++ - 用于在 GOP(图片组)结束处剪切 MPEG 2 视频的 C 代码

我正在处理 MPEG 2 转码项目,我需要在 GOP 的边界处剪切视频。
我已经浏览了一些文档,并且能够在下一个 GOP 开始时剪切视频(通过检查I 帧(或)GOP 开始代码0x00 0x00 0x01 0xB8),但我需要在相同的 GOP 边界处剪切视频。

有没有办法做到这一点?

0 投票
3 回答
504 浏览

java - JAVA MP2 播放(原生)

我对 MP2 音频文件和 JAVA 有疑问。无论如何,音频似乎在 JAVA 中是一种痛苦。我尝试使用 JavaLayer 和 Xuggler 将 MP2 文件解码和转码为 WAV。这两个都失败了。而这些的开发似乎并不活跃。尽管许多人仍在使用这些。JMF 或 FMJ 我还没试过。我希望有更多的本地方法。

我最终将 JavaLayer 分叉到我的项目中。通过一个小的代码更改,我似乎设法让它读取 MP2 中的所有帧。但是尝试将其转换为 WAV 会导致文件只能在 VLC 中播放,而且可以识别但失真了。

无论如何,一个广泛的问题,我道歉。我想我在问有没有 JAVA + JavaLayer + MP2 大师可以帮助我?

原始 MP2:https : //dl.dropboxusercontent.com/u/90134918/horng014.mp2 WAV 转换失败:https ://dl.dropboxusercontent.com/u/90134918/horng014_fail.wav

我有这个项目的公共 GitHub 帐户,但我还没有在那里发布这个损坏的代码。

0 投票
0 回答
137 浏览

video-streaming - 通过vlc接口流接收到的ts格式视频比原来大

我需要使用 MPEG-2 编解码器通过 UDP 流式传输视频文件,因此我认为最好以 .ts 容器格式而不是 .mp4 进行流式传输,仅通过 VLC 接口在客户端将其转换为“MPEG” -2 + MPGA (TS)”。

好的,所以一旦我在 .ts 上流式传输并保存它(使用相同的 MPEG-2 配置文件进行转换,这是唯一产生 .ts 格式视频的配置文件),我意识到接收到的剪辑实际上是其原始大小的两倍多. 此外,帧率保持在 30 fps,比特率也提高了 2 倍以上。

但是,当我在 .mp4 上流式传输相同的序列以稍后将其转换为 .ts(通过 VLC)时,原始视频和传输的视频大小大致相同!

我测量了它的 PSNR 和 VQMg 以获得更多信息,其平均值为:

  1. 在 .ts 上流式传输和转换

    psnr:32,54

    VQMg:0,092

  2. 在 .mp4 上流式传输并在 .ts 上转换

    psnr:12.77

    VQMg:无法测量,BVQM 崩溃了。

好吧,我一开始觉得第一个过程好得令人难以置信,但后来我看到了第二个过程,觉得它太糟糕了(我什至无法测量它的 VQMg,坦率地说,我认为视频看完之后并没有那么糟糕)。

可以按照我对第一个过程的方式继续流式传输,还是我做错了?接收到的视频怎么可能是原始视频的两倍?

我只知道如何通过它的界面使用VLC,请不要提示命令。