问题标签 [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.
c++ - 如何从位图文件创建 .sub (vobsub sutitle sub/idx) 文件
我有一些位图文件(jpeg,png,...),我想编写一个 C++ 程序,将这些位图文件连接到 pes 流(mpeg-2 格式),然后创建一个子文件(.sub/.idx:vobsub字幕文件)。
你能给我一些提示吗?
谢谢
frame - 寻求MPEG-2,从哪里开始?
我希望能够寻找 MPEG-2 文件中的任意帧(来自 DVD,我猜它被称为 MPEG-2 程序流)。到目前为止,我一直在使用 OpenCV 2.1 来访问这些帧,但这只能在逐帧的基础上工作(仅向前搜索)。后来,当我安装 OpenCV 2.3.1 时,这种可能性就消失了,即仅限于 AVI。无论如何,我想在没有 OpenCV 的情况下做到这一点。我设法寻找关键帧(我想)或每一个帧(例如每 12 帧)。现在,看VirtualDub 的帧精确寻找是可能的。它说:''解析交错的 MPEG-2 文件''。这到底是什么意思,我必须从哪里开始做同样的事情?它甚至合法吗,我记得在某处读过一些关于它的东西,但我真的不记得了。我正在使用directshow在C++中编程。据我所知,directshow 不会这样做。然后我在研究 CBaseFilter、streamtime 方法等,但在我深入那个复杂的话题之前,我想知道这是否是正确的方法。期待您的解答,谢谢!
@Geraint:过滤图的代码片段:
然后我使用 IMediaSeeking 来寻找视频。我也尝试过帧步进(因此上面的参考资料)。
ffmpeg - 使用 FFMPEG 将 VOB 转换为 MPEG-2 时丢失音频
我正在使用 FFMPEG 将 VOB 文件转换为 MPEG2 ffmpeg -i file.vob -c copy
out.mpg
。
它可以很好地转换视频,但音频不会在生成的文件上播放。我明白了
错误,但设置-analyzeduration
为 9999999 或更高并不能消除错误。
我认为它正在正确读取流:
这是我的安装信息
matlab - 使用 fread 在 matlab 中查找 mpeg 2 包
我对 .ts 文件使用 ts 分析器和 mpeg-2 编解码器,我发现它分成 7311 个数据包。我试图通过matlab通过使用fopen以二进制打开ts文件并fread来读取文件来找到这个,但我得到的只是一个包含大量数字集合的列(远高于数据包的数量)。有谁知道我如何确定这些数据中的哪些是数据包?或者,如果有人知道另一种查找数据包的方法会对我有很大帮助。先感谢您
mp3 - 可以在 MPEG-1/MPEG-2 帧的有效负载中找到错误的同步字吗?
我知道我可以在 SO 上找到有关此问题的其他答案,但我想从真正了解 MPEG-1/MPEG-2(或 MP3,显然)的人那里得到澄清。
MPEG-1/2 帧的开始是从字节边界开始的 12 个设置位,因此 bytes ff
f*
,其中*
是任何半字节。这 12 位称为同步字。这是在任何 MPEG-1/2 流中查找帧开始的有用特性。
我的第一个问题是:形式上,是否可以在 MPEG-1/2 帧的有效负载中,在其标头之外找到错误的同步字?
如果是这样,这是我的第二个问题:为什么同步词机制甚至存在呢?如果在读取时不能确定是否找到了新帧fff
,那么这个同步字的目的是什么?
请不要在您的回答中考虑 ID3;我已经知道可以在 ID3v2 有效负载中找到的同步词,但这是有据可查的。
audio - 将 mp2 转换为 mpeg 传输流
此应用程序用于 HTTP Live Streaming。(仅限音频)
我有两个连续的 10 秒 mp2 文件(它们一个接一个地编码,但如果拼接在一起,则作为一个无缝文件播放)。我想从这些文件中创建两个 mpeg-2 传输流。不幸的是,当我执行以下操作时:
输出成功,但我得到以下信息:
另外,如果我使用 0.ts 和 1.ts 创建 m3u8 清单文件,则两者之间有一个空格。
因为我正在动态创建播放列表,所以我无法同时访问这两个文件,否则我会简单地连接然后在转换后对文件进行分段。
我在这里想念什么?我应该以不同的方式对 mp2 进行编码吗?我正在使用twolame,一次做10秒。
video-streaming - MPEG TS 中的 PCR 准确度误差
什么是 PCR 准确度误差?
我正在开发从 TS 中提取特定程序、对它们进行多路复用、制作流 CBR 并传输它们的应用程序。
为了制作流 CBR,我在输出 TS 中插入了 NULL 数据包。
但是在分析仪上,我得到了 PCR-Accuracy_error 之类的错误。什么可能导致此错误。
我认为我的逻辑添加 NULL 以使 CBR 是完美的。您可以在附图中看到这一点。
请帮助我。
raspberry-pi - 在 Raspberry Pi 上使用 Gstreamer-1.0 播放 mpeg2ts
程序员朋友们好,我正在尝试直接在 RPi 上使用 gstreamer 播放 .ts 文件。Gstreamer-1.0 和 gst-omx 已成功安装,此示例管道运行起来很迷人:
gst-launch-1.0 -v filesrc location=h264_720p_hp_5.1_6mbps_ac3_planet.mp4 ! qtdemux ! h264parse ! omxh264dec ! autovideosink
它实际上甚至可以使用gst-launch-1.0 playbin uri=file:/root/h264_720p_hp_5.1_6mbps_ac3_planet.mp4
但是,如果我尝试使用 playbin 播放 .ts 文件,它实际上会运行它,但帧速率非常低,这使得这种方法无法使用。
如果我尝试构建类似于上面显示的自定义管道,我会遇到“tsparse”显然与“omxmpeg2videodec”不兼容的问题。
这就是我运行的:
输出此错误:
有谁知道如何让 gstreamer 流畅地播放 mpeg2-ts 文件?
我的目标是在同一个 RPi 上播放 mumudvb 提供的 http 单播 mpeg2-ts 流。
感谢您的帮助,将不胜感激!
编辑:omxplayer 播放 .ts 文件非常流畅,所以我认为我的问题与硬件或文件无关。
c++ - 未定义符号 (CLSID_CMPEG2EncoderVideoDS)
我无法编译使用 MPEG2 DirectShow 视频编码器的项目。我已经包含了 Wmcodecdsp.h,但是当我编译项目时,Visual C++ 在 CLSID_CMPEG2EncoderVideoDS 上给出了未定义的符号错误。我试图添加到项目 msmpeg2enc.dll,但链接器无法链接它没有导出表。
我得到的错误是关于这个:
CaptureGraph.obj:错误 LNK2001:未定义的外部符号“CLSID_CMPEG2EncoderVideoDS
h.264 - Mpeg2 PES 解复用器:如何使用 H.264 视频流提取 PES 数据包?
我在 PES 解复用器中检测到新的 PES 数据包,搜索 packet_start_code_prefix (0x000001)。当它发生时,我可以读取 PES_packet_length,因此我可以从字节流中提取当前的 PES 数据包。但如果是 H.264 视频流,则 PES_packet_length=0。
在这种情况下如何提取PES数据包?0x000001 也可能出现在 H.264 最终单元字节流中,因此我不能使用此前缀来查找下一个 PES 数据包。
我注意到,在每个 H.264 PES 数据包中,PES 数据包中的最后一个最终单元是一个填充数据(nal_unit_type=12)。我是否需要使用这个事实来检测当前 PES 数据包的结束?