H264學習過程總結4 h264視訊檔案rpt傳輸。
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傳輸。