0
我從相機獲取的視頻流和我寫在文件中的幀。問題在於它們的寫入速度太大,我找不到以編程方式設置它的方法。 所以我認爲我正在尋找控制檯指令調用的C函數「-r [framerate]」Android的ffmpeg的組幀速率
我嘗試在avFormatContext中設置選項,但它沒有效果。
AVDictionary *options=NULL;
av_dict_set(&options,"r","1",0);
avio_open2(&oc->pb, "path", AVIO_FLAG_WRITE,options);
之後我讀幀,av_read_frame(context,&packet)
與av_write_frame(oc,&packet);
任何IDEEA什麼,我做錯了,或者我應該如何解決這個書面方式呢?
從我的理解'av_usleep'只會讓線程睡眠。這對輸出視頻的幀速率沒有影響。從睡眠中返回後,程序仍然會從流中讀取下面的幀並以相同的方式寫下來。 –
此外,我不跳過任何幀,作爲流被H264編碼是很重要的,並且這些幀是相關的(1個關鍵幀+ [幾個幀間幀(http://en.wikipedia.org/wiki/Inter_frame )) –
這裏的想法是讓相機中的圖像變慢,所以你不會跳過任何一幀,你的代碼每隔40毫秒讀/寫一幀 –