11关于FFmpeg的dump打印出来的tbc,tbn,tbr的解释
生活随笔
收集整理的這篇文章主要介紹了
11关于FFmpeg的dump打印出来的tbc,tbn,tbr的解释
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
11關于FFmpeg的dump打印出來的tbc,tbn,tbr的解釋
1 關于tbn、tbc、tbr三個時基的講述
- 1)tbn:容器(container)的時基。
對于輸入容器:tbn一般是針對于輸入容器的,被存放在封裝上下文的視頻流數組中的time_base,即AVFormatContext結構中的AVStream結構的成員time_base。例如我們dump函數打印時的左上角帶有Input,就是代表輸入流容器的信息。
對于輸出容器:也是存放于上面的結構體中,但是因為我們需要轉成各種流輸出,所以輸出的tbn會經常改變,例如flv轉ts,那么tbn就從1000轉成90k。有些輸出容器是使用輸入容器進行賦值的(即不轉格式輸出),但是對于有些無輸入容器的視頻流數據來說(例如調用??礢DK的出來的ps流),需要自己初始化輸出容器的tbn。更細分析,由于輸出容器是針對輸出的,所以自然針對在解碼時的壓縮碼流即avpacket,所以我們也說輸出的容器時基為avpacket中的time_base。 - 2)tbc:解碼器中的時基。存放于輸入容器中的視頻流中的解碼上下文中。即AVFormatContext->codec->codec->time_base。
- 3)tbr:實際上不是時基,它表示幀率,該參數傾向于一個基準,所以往往tbr跟fps相同。很多時候tbc和tbn互為倒數。
英語描述:
- 1)tbn = the time base in AVStream that has come from the container。
- 2)tbc = the time base in AVCodecContext for the codec used for a particular stream。
- 3)tbr = tbr is guessed from the video stream and is the value users want to see when they look for the video frame rate。
2 圖片理解
關于tbn,tbc,tbr這三者的描述,再我的關于FFmpeg各個常見結構體共同有的字段文章的第五點時基time_base中已經總結得很詳細了。
總結
以上是生活随笔為你收集整理的11关于FFmpeg的dump打印出来的tbc,tbn,tbr的解释的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS逆向 开发工具
- 下一篇: 一次性剪辑多个视频,在视频背景添加相同图