0
我真的很感謝這個問題的一些幫助。我是FFmpeg的新手,因此如果這是一個愚蠢的問題,請原諒我使用ffmpeg解碼Raw H264幀時出錯
我有一個應用程序通過UDP從攝像頭傳輸H264原始數據。該溝通正常。問題是,當試圖解碼
我只是想解碼我收到的數據,以便將一些計算機視覺技術應用到另一個項目。
我打電話
avcodec_send_packet
有任何影響,你知道會不會是以後的錯誤-22吧?這裏是
Mat DecodificadorH264::h264decode(char* rawH264, int size){
...
...
AVPacket av_packet;
av_init_packet(&av_packet);
uint8_t data;
data = *rawH264;
av_packet.data = &data;
av_packet.size = size;
cout << "size = "<<av_packet.size;
int frame_finished = 0;
l_pCodec = avcodec_find_decoder(AV_CODEC_ID_H264);
l_pAVCodecContext = avcodec_alloc_context3(l_pCodec);
l_pAVCodecContext->width = FRAME_WIDTH;
l_pAVCodecContext->height = FRAME_HEIGHT;
l_pAVCodecContext->extradata = NULL;
l_pAVCodecContext->pix_fmt = AV_PIX_FMT_YUV420P;
int av_return = avcodec_send_packet(l_pAVCodecContext,
(AVPacket*)&av_packet);
if (av_return == AVERROR(EINVAL))cout << "codec not opened, or it is an encoder" << endl;
....
av_return返回 「AVERROR(EINVAL)」,其定義爲-22
可能是什麼問題,我的代碼的一部分?
在此先感謝!
我試圖將char *轉換爲uint8_t *,對此抱歉。現在我正在鑄造av_packet.data =(uint8_t *)rawH264。但是,仍然有同樣的錯誤。你有任何其他建議可能是什麼? – raullalves
我不是在聲稱我現在是API,而是看一些例子,看看你是否正確使用它。同時確認您的UDP通信正在傳輸正確的數據和大小;也許先嚐試TCP。沒有代碼的其餘部分,很難說出了什麼問題。 –