h264视频文件rpt传输。
使用参考地址的源代码稍微修改一下,就可以得到这个传输过程中的client端代码。
http://bbs.chinavideo.org/forum.php?mod=viewthread&tid=7575
因为我使用的是udp传输所以使用sendto函数。
主要是完成自己的server端的代码,也简单。
关键代码如下,
if(recvlen < 1414 && nalu_hdr->TYPE != 28)
{
memcpy(temp, h264nal_header, 4);
memcpy(temp + 4, str + 12, recvlen - 12);
temp_num = 4 + recvlen - 12;
}
else
{
if(fu_hdr->S == 1)// add nal_header into the first NAL bag
{
memcpy(temp, h264nal_header, 4);
nalu_hdr->TYPE = fu_hdr->TYPE;
*(str +13) = *(str +12);
memcpy(temp + 4, str + num_1, recvlen - num_1);
temp_num = 4 + recvlen - num_1;
}
else if(fu_hdr->E == 1)
{
nalu_hdr->TYPE = fu_hdr->TYPE;
memcpy(temp, str + num_2, recvlen - num_2);
temp_num = recvlen - num_2;
}
else
{
nalu_hdr->TYPE = fu_hdr->TYPE;
memcpy(temp, str + num_2, recvlen - num_2);
temp_num = recvlen - num_2;
}
}
将serve端得到的数据保存成一个文件可以使用vcl播放器播放的,传输成功。
个人感觉单独的264的视频流实用性不大,因为视频常常与音频压缩到一起,那么时间戳是必不可少的。
下面要尝试mp4格式的文件rpt传输。