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傳輸。