ffmpeg使用多線程提速 遠程服務器怎么使用ffmpeg?
遠程服務器怎么使用ffmpeg?這取決于框架和操作系統。通常,腳本字符串可以直接作為參數處理。這種方法的缺點是它將啟動一個新的過程。另一種方法是將ffmpeg編譯到項目中(建議將main函數改為可調用
遠程服務器怎么使用ffmpeg?
這取決于框架和操作系統。
通常,腳本字符串可以直接作為參數處理。這種方法的缺點是它將啟動一個新的過程。另一種方法是將ffmpeg編譯到項目中(建議將main函數改為可調用函數)。您可以編寫一個服務,負責調度ffmpeg并為每個請求打開一個新的ffmpeg解碼線程。需要注意的是,ffmpeg對內存的要求很高,因此線程不愿意無限期地增加。因此需要編寫一個線程池來保持線程數。超過線程數的請求被線程釋放的塊所知。這仍然是一個問題,因為視頻流是一個長期的處理過程,所以在資源有限的情況下處理高并發是不夠的。最后一種方法是使用nginx-RTMP連接多個視頻流,然后將不同的視頻包扔到同一個線程隊列中進行處理,然后進行解碼和分發。這種高并發性能可能更好,缺點是每個人都可能卡住
ffmpeg調用雙核雙線程處理器的hwaccel,這與普通的雙核四線程解碼器不同。不同的是處理器的運算速度不一樣
ffmpeg解碼是調用ffmpeg的開源庫函數進行解碼,屬于軟件解碼。硬件解碼是利用DSP等解碼芯片對ffmpeg無關的算法進行解碼。