[問題] 解碼影片並播放

看板Programming作者 (Ar藤)時間13年前 (2012/05/25 07:11), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串1/2 (看更多)
小弟最近用libav(ffmpeg)寫一個簡單的播放器(用qt作gui) 目前已經可以解出 video audio packet 現在要同步播放出來 但在這中間有個問題 - 要怎麼處理讀(play thread)寫(decode thread)packet的問題 假設我什麼都不管 就一直解碼存到兩thread的共用buffer (buffer指兩個fifo) 1秒20張ppm一定會把buffer炸掉 所以我目前想法是這樣: play thread 在buffer中會不斷把audio packet讀進來 這qt有個物件可以吃pcm stream 並根據video frame的時間適當畫出來 比較麻煩的是decode decode要知道play thread播放到哪 根據這時間來決定要不要decode 我想根據audio/video fifo中最大時間 - 播放時間 如果小於5個1/fps 就解5個packet 否則sleep 5msec 以上是我的想法 尚未實作 不知一般播放器是不是有個既有的經典pattern? 如果沒有的話 我就先造我的方式coding 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.192.162.252 ※ 編輯: Arton0306 來自: 203.192.162.252 (05/25 15:18)

05/25 17:26, , 1F
還是你分兩個process,用IPC來連?
05/25 17:26, 1F

05/28 10:21, , 2F
試試producer consumer pattern
05/28 10:21, 2F
文章代碼(AID): #1Flp2-bA (Programming)
討論串 (同標題文章)
文章代碼(AID): #1Flp2-bA (Programming)