首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JCODEC支持MPEG-TS还是MPEG-PS?

JCODEC支持MPEG-TS还是MPEG-PS?
EN

Stack Overflow用户
提问于 2017-04-14 23:46:08
回答 1查看 756关注 0票数 3

我正试图从MPEG、MPEG-TS和MPEG-PS文件以及活动流(network / UDP / RTP流)中选择帧(视频和元数据)。我正在研究如何使用JCODEC来完成这个任务,我首先尝试使用FrameGrab / FrameGrab8Bit类,然后遇到了一个错误,即这些格式“暂时不受支持”。我回顾了一些承诺,看看是否可以只使用旧的代码,但看起来这两个文件的格式自2013 /2015年以来“暂时不受支持”。

然后,我尝试通过插入以下代码将其插入到FrameGrab8Bit类中.

代码语言:javascript
复制
public static FrameGrab8Bit createFrameGrab8Bit(SeekableByteChannel in) throws IOException, JCodecException {
...
SeekableDemuxerTrack videoTrack = null;
...
case MPEG_PS:
   MPSDemuxer psd = new MPSDemuxer(in);
   List tracks = psd.getVideoTracks();
   videoTrack = (SeekableDemuxerTrack)tracks.get(0);
   break;
case MPEG_TS:
   in.setPosition(0);
   MTSDemuxer tsd = new MTSDemuxer(in);
   ReadableByteChannel program = tsd.getProgram(481);
   MPSDemuxer ptsd = new MPSDemuxer(program);
   List<MPEGDemuxerTrack> tstracks = ptsd.getVideoTracks();
   MPEGDemuxerTrack muxtrack = tstracks.get(0); 
   videoTrack = (SeekableDemuxerTrack)tstracks.get(0);
   break;
...

但是,我在MTSDemuxer.java类中遇到了parsePacket函数中的数据包头断言失败:

代码语言:javascript
复制
public static MTSPacket parsePacket(ByteBuffer buffer) {
   int marker = buffer.get() & 0xff;
   int marker = by & 0xff;
   Assert.assertEquals(0x47, marker);
...

我发现,当我重置可查找字节通道(即:in.setPosition(0))的位置时,代码使其通过断言,但在videoTrack = (SeekableDemuxerTrack)tstracks.get(0) (tstracks.get(0)不能转换为SeekableDemuxerTrack)时失败。

我在浪费时间吗?这些格式是否支持库中的某个地方,而我只是找不到它们?

此外,在代码中浏览并快速测试应用程序之后,您从演示器中得到的似乎都是视频帧。没有办法获得与视频帧相关联的元数据帧吗?

作为参考,我正在使用来自:http://samples.ffmpeg.org/MPEG2/mpegts-klv/的测试文件

EN

回答 1

Stack Overflow用户

发布于 2017-04-19 17:08:13

万一将来有人也有这个问题。在项目的GitHub页面上,我收到了一个开发人员对这个问题的答复。响应:

是的,MPEG TS不受MP4的支持。您不能在TS流中进行真正的搜索(除非在手动之前对整个流进行索引)。

我还询问了如何实现该功能。我认为可以通过重新处理要从MTSDemuxer构建的SeekableDemuxerTrack类来实现,这样就可以与FrameGrab8Bit类兼容,并得到以下响应:

因此,在SeekableDemuxerTrack上实现TS demuxer似乎没有多大意义。我们实际上并没有对TS演示器给予太多的关注,所以任何输入都是非常欢迎的。

我认为这(在SeekableDemuxerTrack接口上构建SeekableDemuxerTrack类)将适用于文件(因为您已经拥有了所有的东西)。但是,如果没有充分阐述这一想法,我就不能肯定地说(这个解决方案对于MPEG-TS / PS连接来说是行不通的)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43420618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档