gpt4 book ai didi

.ts 文件中的 Java BufferedImages

转载 作者:行者123 更新时间:2023-12-02 11:42:21 25 4
gpt4 key购买 nike

如何从 Java 中的 .ts 文件获取 BufferedImage(定义位置处的帧)?如果可能的话,我不想使用任何 JNI/CLI 包装器。

     System.out.println( JCodecUtil.detectFormat( file ) );
Demuxer demuxer = JCodecUtil.createDemuxer( JCodecUtil.detectFormat( file ), file );
for ( DemuxerTrack demuxerTrack : demuxer.getVideoTracks() ) {
Packet packet;
while ( ( packet = demuxerTrack.nextFrame() ) != null ) {
System.out.println( "frame " + packet.getDuration() );
}
}

第一个片段的输出只是MPEG_TS
[错误] 。 (:0): 不支持 MPEG_TS 格式
MPEG_TS
[错误] 。 (:0): 不支持 MPEG_TS 格式

    for ( DemuxerTrack demuxerTrack : JCodecUtil.createM2TSDemuxer( file, TrackType.VIDEO ).v1.getTracks() ) {
Packet packet;
while ( ( packet = demuxerTrack.nextFrame() ) != null ) {
System.out.println( "frame : " + ImageIO.read( new ByteArrayInputStream( packet.getData().array() ) ) );
}
}

在此代码片段中,它只为每个帧输出 null。如何解决这个问题?

最佳答案

Picture tmp = Picture.create(1920, 1088, ColorSpace.YUV420);
VideoDecoder vd = JCodecUtil.createVideoDecoder(JCodecUtil.detectDecoder(data.duplicate()), data.duplicate());
Picture pic = vd.decodeFrame(data, tmp.getData());
BufferedImage buf = AWTUtil.toBufferedImage(pic);

关于.ts 文件中的 Java BufferedImages,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48461795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com