我們在c#中使用FFmpeg視頻處理時,遇到了視頻轉換無聲音、壓縮比例不正確以及cpu耗時等問題,經過FFmpeg參數優化調整,總結了以下幾個方案供參考。
準備:視頻原始大小:82248kb
方案一:ffmpeg -i test_video.mp4 -b 400k -vcodec libx264 -y test_video_handle.mp4
壓縮后視頻大小8572kb,耗時23325ms,CPU占用率約97%,壓縮后視頻播放質量無明顯下降,畫質流暢。
方案二:ffmpeg -i test_video.mp4 -s 704x576 -b 400k -vcodec libx264 -y test_video_handle.mp4
壓縮后視頻大小8623kb,耗時15907ms,CPU占用率約60%,壓縮后視頻播放質量無明顯下降,畫質流暢。
方案三:ffmpeg -i test_video.mp4 -s 704x576 -r 24 -b 400k -vcodec libx264 -preset ultrafast -qp 35 -y test_video_handle.mp4
壓縮后視頻大小2944kb,耗時13662ms,CPU占用率約30%,壓縮后視頻播放質量明顯下降,畫質不清晰流暢。
方案四:ffmpeg -i test_video.mp4 -r 24 -b 400k -vcodec libx264 -preset ultrafast -qp 35 -y test_video_handle.mp4
壓縮后視頻大小10281kb,耗時11620ms,CPU占用率約44%,壓縮后視頻播放質量無明顯下降,畫質流暢。
綜合比較方案三的壓縮率最高,但是畫質影響較大;方案四在壓縮率、耗時、性能、畫質等方面表現都比較好。
以上僅為參考,具體使用需要根據各軟件開發公司項目實際需求進行選擇、測試。