1. 程式人生 > >ffmpeg多執行緒編碼原理

ffmpeg多執行緒編碼原理

分片在編碼中叫slice,slice的意義是把一幀分成多個獨立的編碼單元,為什麼需要slice呢,我感覺有兩個方面,1.多執行緒,為了編碼更快;2.傳輸為了防止錯誤蔓延到其他區域,比如一幀影象分成上下兩個分slice,每個slice是半幀影象,當第一個slice錯誤了,第一個slice解碼會花屏,但是第二個slice的影象是沒有問題的;

 一個視訊流編碼不是你想多執行緒就多執行緒的,編碼是有前後關係的,不是你外部實現的,一般是編碼器內部啟動多執行緒同時編碼同一幀,不能多執行緒編碼前後幾幀,多執行緒編碼一幀的前提是要按照一定的規律把影象切分成多個分片,也就會產生多個nalu;

 當幀分成多個編碼分片後就會產生多個nalu,一般多執行緒編碼就會有多個nalu;