h264硬件編解碼
CPU編碼(軟編)
? ? AVCodec *codec = avcodec_find_encoder(AV_CODEC_ID_H264);
GPU編碼(硬編)
????AVCodec * codec = avcodec_find_encoder_by_name("h264_nvenc");//英偉達(dá)顯卡
????AVCodec * codec = avcodec_find_encoder_by_name("h264_qsv");//Intel核心顯卡
注意:在進(jìn)行rtmp推流時(shí)足陨,選擇前面兩種硬編的行為可能不一樣循未,使用英偉達(dá)顯卡不會(huì)產(chǎn)生B幀窟她,而使用Intel-QSV則會(huì)產(chǎn)生B幀建蹄,
B幀的存在坷衍,導(dǎo)致dts不是嚴(yán)格遞增,在 “write_packet”的時(shí)候會(huì)報(bào)錯(cuò)分尸。解決辦法是限制B幀輸出:編碼器參數(shù) max_b_frames = 0;
h264編碼參數(shù)眾多乍楚,參考下面: