FFMPEG設置 cbr討論

Q:我采用ffmpeg調用x264一直出錯,命令如下
ffmpeg -s 352x288 -r 50 -pix_fmt yuv420p?? -i tmp.yuv tmp.h264
可不可以給點建議,找了很久也沒有找到解決辦法,錯誤時error while opening encoder for output stream 0.0 maybe incorrect parameters,先謝了

A-vcodec libx264 沒加?

加了也是一樣

你把 x264編進去沒

ffmpeg -s 176x144 -pix_fmt yuv420p -r 30 -b 200000 -i foreman_part_qcif.yuv -vcodec libx264 new1.h264

-qmin 10 -qmax 51 -qdiff 4 -me_range 16 -keyint_min 25 -qcomp 0.6

?

boradcasting 或者 streaming 的應用,CBR都首要優先滿足的條件
現在那些高清電視臺為什么要使用占用幾十兆的資源的mpeg2 ts流來播放,一個主要原因就是因為h.264沒有真正cbr,而mpeg2就有
streaming 應用其實也能處理一定程度的VBR,但是在某些時候,為了處理VBR碼流的不穩定帶來的開銷遠遠超過它帶來的好處,不如用CBR,甚至多花幾倍的存儲和帶寬都無所謂
一直很困惑,CBR這種在boradcasting 和 streaming的大型工業級的應用上非常重要的東西,h.264是怎么考慮的

1、VBR 適合的應用場景是媒體存儲,而不是網絡傳輸,因此不要讓武狀元去當文官;
2、其實實際網絡傳輸中所謂的 CBR 一般都是 ABR(平均比特率),即只要是單位時間內把碼率控制在額定碼率就可以了,因為編碼輸出本來就有緩沖可以起到平滑波動的作用;
3、你所謂的嚴格意義上的 CBR 是每一幀都分配同樣的碼字,試想一下,如果某一幀所需要的碼字本來就很少,而你卻一定要給它分配很多碼字,那不是浪費么?另一方面,如果某一幀所需要的碼字本來就多,而你卻給得很少,那這幀的效果會很差。這樣編下來,整體序列質量會忽好忽壞地不停發生跳變,反而對視覺沖擊很大;因此 ABR 才是最適合網絡傳輸的方案;
4、無論是 CBR、ABR 還是 VBR 都是屬于碼率控制,而碼率控制是視頻編碼的開放部分,它不會改變碼流結構的合法性,因此無論在 MPEG2、MPEG4 還是 H.263、H.264 當中都沒有做規定;
5、由于目前的視頻編碼標準都是基于塊編碼的混合編碼框架,因此一個碼率控制算法可以用到任何協議上(當然有時候需要做點小的改動),只不過是控制效果好不好的問題,沒有哪個 RC 是專屬哪個協議的。

樓主的需求就是一種非常硬性的CBR碼率控制解決方案,這種解決方案要做到每一個幀的輸出比特幾乎相同(或誤差相當小,甚至小到可以忽略不計)。上面諸多同仁的討論中已經指出,通過插入(無效的)比特來填充幀編碼的比特是一種合理的解決方案,我也認為這可能是必要的一種解決方法了。

我是這樣考慮這個問題的:

其一:如果不計編碼次數,我們可以對確定的一幀枚舉若干給定QP值的編碼結果,然后選取不超過但最接近目標比特率的幀編碼QP,再填充無效比特;也可以在選擇出QP值的基礎上,做宏塊級枚舉QP,微調QP值,以達到更接近目標比特率。這樣的一種解決方案想來沒有人會喜歡,因為反復編碼次數太多,效率太低。但是這種方法可以近最大可能地保留有效比特。

其二:按照樓主的這個需求和您給出的圖示,我發現您的應用在1280X534,甚至是1080p。目標比特率以Mkbps為單位,在24Hz和30Hz,在高清畫質上做編碼。我的經驗是,如果給定的比特率足夠高,即將此問題放在中高帶寬下的碼率控制的討論中,則樓主的問題才具有現實的意義。因為中高比特率下的碼率控制要比中低比特率下的好控制的多。

我對這個問題非常感興趣,若有空閑希望做進一步的深入。稍早些時候我也考慮過這個問題,但是限于知識面太窄,不清楚具體是否有價值作這個問題。樓主在討論中給出的應用需求和相關背景非常具有參考意義。

我希望給樓主請教一個問題:我看到你給出的圖是用bitrate viewer 這個應用程序作圖。以前我沒有見過,效果還挺好。我想問,這個應用程序是您自己寫的還是哪里可以提供的呢?

今晚太困,話不成句,若有閑暇,后作修訂。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/455715.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/455715.shtml
英文地址,請注明出處:http://en.pswp.cn/news/455715.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

博文聲明

本博客用于分享學習筆記 歡迎大神指正,我們互相學習交流,共同成長進步! 博客首頁:秋葉夏風的博客

【經驗分享】工程開發與Coding規范

今天分享分為兩部分 :) PART01 工程開發代碼規范分享/ PART02 關于某易云自動簽到聽歌分享- 5Mins DevCoding Rule: PART 1 了解真實工程開發🏗..... 本篇內容分享的宗旨: 學長工作經驗之談僅作分享🏷 Ready,Go 代碼管理——工具篇 ?工程上首先需要…

過濾器與攔截器區別

過濾器與攔截器區別 參考:http://www.cnblogs.com/dreamroute/p/4198087.html?utm_sourcetuicool 過濾器 過濾器是一個程序,它先于與之相關的servlet或JSP頁面運行在服務器上。它是隨你的web應用啟動而啟動的,只初始化一次,以后就…

二進制-高效位運算

數獨 數獨是介紹位運算的好例子,運用位運算和不運用效率差別還是挺大的。我們先看數獨需求: 1、當前數字所在行數字均含1-9,不重復 2、當前數字所在列數字均含1-9,不重復 3、當前數字所在宮(即3x3的大格)數字均含1-9&a…

pytorch resnet50_PyTorch終于能用上谷歌云TPU,推理性能提升4倍,我們該如何薅羊毛?...

曉查 發自 凹非寺量子位 報道 | 公眾號 QbitAIFacebook在PyTorch開發者大會上正式推出了PyTorch 1.3,并宣布了對谷歌云TPU的全面支持,而且還可以在Colab中調用云TPU。之前機器學習開發者雖然也能在Colab中使用PyTorch,但是支持云TPU還是第一次…

x264里的2pass指的是什么意思? x264源代碼分析2.encode()

A:x264里的2pass指的是什么意思?另外stat是什么意思, 比如有個參數--stats <string> Filename for 2 pass stats [/"%s/"]/n", defaults->rc.psz_stat_out );stats在這是什么意思? 2pass是2次編碼的意思&#xff0c;stats是統計文檔的名稱&a…

項目啟動居然如此重要!

項目的啟動階段比較短&#xff0c;項目經理往往容易忽視這個階段&#xff0c;但是&#xff0c;項目的啟動卻具有著重要的意義。 定基調&#xff1a; 基調包括工作的節奏、團隊氛圍和溝通風格等。 一首歌的第一句決定了這首歌的基調&#xff0c;如何唱好這第一句就是項目啟動所要…

mysql數據庫導入導出文件sql文件

window下 1.導出整個數據庫 mysqldump -u 用戶名 -p 數據庫名 > 導出的文件名 mysqldump -u dbuser -p dbname > dbname.sql 2.導出一個表 mysqldump -u 用戶名 -p 數據庫名 表名> 導出的文件名 mysqldump -u dbuser -p dbname users> dbname_users.sql 3.導出…

Android Studio主題設置、顏色背景配置

2019獨角獸企業重金招聘Python工程師標準>>> color-themes 效果展示 打開http://color-themes.com/有很多樣式可供選擇 1. Monokai Sublime Text 3(color theme) 2. Solarized Light (color theme) 3. Visual Studio 2015 Dark(color theme) 導入方式 下載主…

JavaScript中的函數

js函數 *第一種是使用function語句定義函數 function abc(){alert(abc); }*第二種是在表達式中定義函數 var 函數名 function\(參數1&#xff0c;參數2&#xff0c;…\){函數體};//例如&#xff1a;//定義var add function\(a,b\){return ab;}//調用函數document.write\(a…

x264源代碼分析1。fread()

相關說明:1. 使用版本: x264-cvs-2004-05-11 2. 這次的分析基本上已經將代碼中最難理解的部分做了闡釋,對代碼的主線也做了剖析,如果這個主線理解了,就容易設置幾個區間,進行分工閱讀,將各個區間擊破了. 3. 需要學習的知識:a) 編碼器的工作流程.b) H.264的碼流結構,像x264_sp…

在centos下安裝pycrypto報錯 RuntimeError: autoconf error

解決&#xff1a;yum -y install gcc File "/usr/lib64/python3.6/distutils/dist.py", line 974, in run_command cmd_obj.run() File "/usr/lib64/python3.6/distutils/command/build.py", line 135, in run self.run_command(cm…

Java多線程實現異步調用

在Java平臺,實現異步調用的角色有如下三個角色&#xff1a;調用者、 提貨單 、真實數據&#xff0c;一個調用者在調用耗時操作,不能立即返回數據時,先返回一個提貨單 .然后在過一斷時間后憑提貨單來獲取真正的數據.去蛋糕店買蛋糕&#xff0c;不需要等蛋糕做出來(假設現做要很長…

sql server 2008 r2卸載重裝_免費下載:Intouch軟件、Windows操作系統、SQL數據庫,VB6.0、C#...

為大家整理了常用的Windows操作系統和安裝軟件&#xff0c;基本上都是經過我們項目測試OK的版本&#xff0c;以后項目調試就齊全了&#xff0c;不用再“東奔西走”&#xff0c;“小鹿亂撞”了。整理不易&#xff0c;若對您有幫助請關注并轉發&#xff0c;以便幫助到更多的人。I…

Android ToolBar 使用完全解析

ToolBar簡介 ToolBar是Android 5.0推出的一個新的導航控件用于取代之前的ActionBar&#xff0c;由于其高度的可定制性、靈活性、具有Material Design風格等優點&#xff0c;越來越多的應用也用上了ToolBar&#xff0c;比如常用的知乎軟件其頂部導航欄正是使用ToolBar。官方考慮…

【零散積累】傳輸文件(sz/rz/scp命令)

來自wiki遷移頁面路徑&#xff1a;劉旺的主頁 / 個人零散積累 / 01> 傳輸文件&#xff08;sz/rz/scp命令&#xff09; 工作中的傳輸文件會出現在linux之間&#xff0c;或者linux與windows之間。 一、怎么實現linux與windows之間的文件傳輸&#xff1f; 1.sz和rz是什么 s…

x264_macroblock_cache_load()

功能:完成將已編碼數據參數和待編碼數據裝入到h->mb.cache中,下圖是BUF中存儲的數據在以MB為單位的時候的存儲順序 x264_macroblock_cache_load( h, i_mb_x, i_mb_y );//是把當前宏塊的up宏塊和left宏塊的intra4x4_pred_mode&#xff0c;non_zero_count加載進來&#xff0c…

U(優)盤安裝FreeBSD-9.0+GNOME_lite桌面

貼圖在我的主頁&#xff1a;http://hi.baidu.com/daodej/item/26313f4fc3db51ef1f19bcc6 修訂于&#xff1a;2012/07/04 標題&#xff1a;U(優)盤安裝FreeBSD-9.0GNOME_lite桌面&#xff0c;boot0啟動XP(Windows)、FreeBSD、Ubuntu(Linux)三系統 【黑括號表示說明&#xff0c;中…

【零散積累】 vim常用操作

類型 操作 含義 刪除 dd 刪除游標所在的一整行(常用) ndd n為數字。刪除光標所在的向下n行&#xff0c;例如20dd則是刪除光標所在的向下20行 d1G 刪除光標所在到第一行的所有數據 dG 刪除光標所在到最后一行的所有數據 d$ 刪除光標所在處&#xff0c;到該…

生活中常見物聯網實例_物聯網網關常見問題解答(一)

1.為什么物聯網解決方案需要網關&#xff1f;物聯網網關彌合了設備&#xff0c;傳感器&#xff0c;設備&#xff0c;系統和云之間的通信鴻溝。通過系統地連接云&#xff0c;物聯網網關提供了本地處理和存儲&#xff0c;并具有基于傳感器輸入的數據自主控制現場設備的功能。物聯…