有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

用Java进行bytearray RTSP编程。如何阅读单部分框架?

为了好玩,我尝试用Java实现RTSP服务器

因为我对RTSP没有任何预先了解。 我从分析已经生成的源代码开始

我在网上找到了这些代码

链接:

http://nsl.cs.sfu.ca/teaching/09/820/streaming/Client.html http://nsl.cs.sfu.ca/teaching/09/820/streaming/Server.html http://nsl.cs.sfu.ca/teaching/09/820/streaming/VideoStream.html http://nsl.cs.sfu.ca/teaching/09/820/streaming/RTPpacket.html

对于这篇帖子,我有一个关于视频流的问题。爪哇

其方法如下:

 public int getnextframe(byte[] frame) throws Exception
  {
    int length = 0;
    String length_string;
    byte[] frame_length = new byte[5];

    //read current frame length
    fis.read(frame_length,0,5);

    //transform frame_length to integer
    length_string = new String(frame_length);
    length = Integer.parseInt(length_string);

    return(fis.read(frame,0,length));
  }

如您所见,它将字节[]转换为字符串,而不是整数。然而,根据我的经验,这个字符串变成了一个六边形字符串。所以我变了。。。下面

Integer.parseInt(length_string.trim(), 16);

有时看起来还可以,但有时会出现数字格式异常。 当我打印length_string变量时,它会像iso2a, vc1mp, 41��� ...一样显示在控制台中

我不知道我错过了什么。你能解释一下代码的用途吗

length_string = new String(frame_length);
length = Integer.parseInt(length_string);

附言

如果有人知道这些代码或其他示例的完整实现不使用额外的第三方LIB,这对我会有很大帮助


共 (1) 个答案

  1. # 1 楼答案

    我回答自己,结束这个问题

    每种视频类型都有自己的数据结构

    在本例中,我为“MJPEG”设置了数据类型,但加载了“MPEG”文件

    所以字节数组看起来很奇怪

    • 仅供参考,MJPEG只是一包jpeg。所以每一帧都是关键帧
    • 我之前处理过的其他类型,例如TS文件,有I帧和b帧。前者是关键帧,图像清晰。然而,第二个看起来坏了,因为它不是关键帧