用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 楼答案
我回答自己,结束这个问题
每种视频类型都有自己的数据结构
在本例中,我为“MJPEG”设置了数据类型,但加载了“MPEG”文件
所以字节数组看起来很奇怪