1. 程式人生 > >如何參考x264,使用libx264編碼實時的攝像頭影象幀

如何參考x264,使用libx264編碼實時的攝像頭影象幀

參考x264工程中的實現,關鍵的幾個地方:

p_read_frame( &pic, opt->hin, i_frame + opt->i_seek )//實際是int read_frame_yuv( x264_picture_t *p_pic, hnd_t handle, int i_frame )

i_file += Encode_frame( h, opt->hout, &pic );

i_size = x264_nal_encode( data, &i_data, 1, &nal[i] ) ) > 0

i_file += p_write_nalu( hout, data, i_size ); 

最關鍵的應用介面基本上就是這幾個。

如果要編碼攝像頭出來的yuv資料,就要實現與read_frame_yuv等效的動作,把幀內容放到

x264_picture_t.img.plane[0]

x264_picture_t.img.plane[1]

x264_picture_t.img.plane[2]

 x264_picture_t pic;

然後迴圈呼叫:

x264_encoder_encode( h, &nal, &i_nal, pic, &pic_out )

x264_nal_encode( data, &i_data, 1, &nal[i] )

實現編碼,至於編碼後的資料,可以發往網路,同時也可以存起來。

編碼時有許多引數要設定,這裡都沒提到,因為我也沒搞明白了,慢慢來吧。

轉載來自加菲的http://wmnmtm.blog.163.com/blog/static/38245714201163125710855/,謝謝加菲了,一直看你的日誌,非常有用