主要問(wèn)題集中在編碼過(guò)程中需要CPU大量的參與工作,因?yàn)閴嚎s率的設(shè)置不同勋锤,使用ultrafast饭玲,編碼器的工作量比medium的工作量少了,cpu就下去了叁执,可以嘗試下面設(shè)置:
AVDictionary* param = nullptr;
av_dict_set(¶m, "preset", "ultrafast", 0);
av_dict_set(¶m, "tune", "zerolatency", 0);
相應(yīng)編碼壓縮的數(shù)據(jù)量小茄厘,要發(fā)送的數(shù)據(jù)量就大矮冬,碼率如果無(wú)法支撐,畫(huà)面就沒(méi)那么清晰次哈,可嘗試增大碼率欢伏;
vcodecContext->bit_rate = 3000000 * 10;
二、X264的preset和tune
鑒于x264的參數(shù)眾多亿乳,各種參數(shù)的配合復(fù)雜硝拧,為了使用者方便,x264建議如無(wú)特別需要可使用preset和tune設(shè)置葛假。這套開(kāi)發(fā)者推薦的參數(shù)較為合理障陶,可在此基礎(chǔ)上在調(diào)整一些具體參數(shù)以符合自己需要,手動(dòng)設(shè)定的參數(shù)會(huì)覆蓋preset和tune里的參數(shù)聊训。
--preset的參數(shù)主要調(diào)節(jié)編碼速度和質(zhì)量的平衡抱究,有ultrafast、superfast带斑、veryfast鼓寺、faster、fast勋磕、medium妈候、slow、slower挂滓、veryslow苦银、placebo這10個(gè)選項(xiàng),從快到慢赶站。
--tune的參數(shù)主要配合視頻類(lèi)型和視覺(jué)優(yōu)化的參數(shù)幔虏。如果視頻的內(nèi)容符合其中一個(gè)可用的調(diào)整值又或者有其中需要,則可以使用此選項(xiàng)贝椿,否則建議不使用(如tune grain是為高比特率的編碼而設(shè)計(jì)的)想括。tune的值有:
film:電影、真人類(lèi)型烙博;
animation:動(dòng)畫(huà)瑟蜈;
grain:需要保留大量的grain時(shí)用;
stillimage:靜態(tài)圖像編碼時(shí)使用习勤;
psnr:為提高psnr做了優(yōu)化的參數(shù)踪栋;
ssim:為提高ssim做了優(yōu)化的參數(shù);
fastdecode:可以快速解碼的參數(shù)图毕;
zerolatency:零延遲夷都,用在需要非常低的延遲的情況下,比如電視電話會(huì)議的編碼。
未完待續(xù)...
https://www.zhihu.com/question/27442034
https://trac.ffmpeg.org/wiki/Encode/H.264#CBRConstantBitRate