ffmpeg 硬件解码rtsp流_树莓派使用硬件加速视频转码
現在隨著智能設備普及以及寬帶的升級,越來越的的視頻素材在不斷的產生。無論是我們自己拍攝的視頻,還是從網上收集來的電影、電視劇,并不是全部都值得我們保存最高清的版本。打個比方,比如你下載了一個 1080P 甚至是 4K 的電影視頻,看完了之后,覺得這個電影值得收藏,但又不至于非常喜歡。一個 1080P 2個小時左右的視頻可能大概有 5G 左右,如果將其壓縮到 720P,那么視頻文件大小可能會減少一半有多(具體還視碼率及多個參數影響)。而且視頻質量的觀感并不會降低太多。
然而,使用我們的電腦進行轉碼,雖然說有很多現成的軟件,但是轉碼的時候一般會占用很多的CPU資源,導致影響我們的日常使用。另一方面,如果需要對大量視頻進行轉碼,如一套幾十集的連續劇,那么長時間開啟電腦轉碼也會浪費不少電。
如果能用一套低功耗的系統,就能完成這一目的,那是最好不過的。但是,目前能達到這一要求的設備,其實并不多。本來 NAS 非常適合這項工作,然而,中低端的群暉的性能都非常一般,并不適合用來轉碼。而帶轉碼功能的群暉,價格非常高。當然,也可以使用類似 J3455 J4105 J5005 等低功耗集成平臺,組裝一臺 NAS,或者買一個蝸牛星際的礦渣(J900)。如果配置一套這樣的系統,先不論軟硬件安裝配置的問題,這樣一通操作下來,還不如直接用電腦來進行轉碼。
最近樹莓派4已經開賣了,新的樹莓派有千兆網卡、還有USB3.0 ,而且性能還有大幅的提高。所以現在樹莓派 I/O 慢,網絡傳輸慢的問題基本都解決了,再加上樹莓派的能耗低,自然就成了轉碼的首選。
由于樹莓派4還沒發貨,所以先用我手上的樹莓派3B來進行測試。
樹莓派使用默認的 ffmpeg 進行轉碼,是使用 CPU 進行轉碼的,效率是非常低的。我們可以通過使用源碼編譯的方式來安裝 ffmpeg,就可以使用硬件加速轉碼了。在具體配置之前,先來看效果的對比。這里我使用了一段一分多種的 Sony 大法廣告視頻作為素材進行轉碼,源視頻為 1080P 3000kbpps 碼率的視頻,然后使用樹莓派3B 對其轉碼成 720p 2000kbpps 碼率的視頻,同時使用 i5 4570 進行對比。
FFMPEG default(raspberrypi 3B) convert start ... Convert used : 0:08:26.437337 s FFMPEG omx(raspberrypi 3B) convert start ... Convert used : 0:02:59.920381 s FFMPEG default(i5 4570) convert start ... Convert used : 0:00:40.825523 s可以看到,樹莓派使用硬件加速轉碼可以提速接近4倍,但是,和電腦的 i5 相比,差不多慢了3倍多。然而,樹莓派滿載的功耗也不過10W左右,我的這個i5平臺滿載轉碼功率差不多100多W,所以,使用樹莓派來完成一些不要緊的轉碼任務,還是有一定可行性的。
下面,介紹一下樹莓派使用硬件加速進行轉碼的配置
# 更新軟件源 sudo apt-get update sudo apt-get install git # 依賴安裝 sudo apt-get install libomxil-bellagio-dev # x264 安裝 git clone git://git.videolan.org/x264.git cd x264 ./configure --disable-shared --enable-static --enable-strip --disable-climake -j4sudo make install # ffmpeg 編碼安裝 git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg cd ffmpeg PREFIX=/usr/local ./configure --enable-gpl --enable-version3 --enable-nonfree --enable-static --disable-shared --prefix=$PREFIX --disable-opencl --disable-thumb --disable-pic --disable-stripping --enable-small --enable-ffmpeg --enable-ffplay --enable-ffprobe --disable-doc --disable-htmlpages --disable-podpages --disable-txtpages --disable-manpages --disable-everything --enable-libx264 --enable-encoder=libx264 --enable-decoder=h264 --enable-encoder=aac --enable-decoder=aac --enable-encoder=ac3 --enable-decoder=ac3 --enable-encoder=rawvideo --enable-decoder=rawvideo --enable-encoder=mjpeg --enable-decoder=mjpeg --enable-demuxer=concat --enable-muxer=flv --enable-demuxer=flv --enable-demuxer=live_flv --enable-muxer=hls --enable-muxer=segment --enable-muxer=stream_segment --enable-muxer=mov --enable-demuxer=mov --enable-muxer=mp4 --enable-muxer=mpegts --enable-demuxer=mpegts --enable-demuxer=mpegvideo --enable-muxer=matroska --enable-demuxer=matroska --enable-muxer=wav --enable-demuxer=wav --enable-muxer=pcm* --enable-demuxer=pcm* --enable-muxer=rawvideo --enable-demuxer=rawvideo --enable-muxer=rtsp --enable-demuxer=rtsp --enable-muxer=rtsp --enable-demuxer=sdp --enable-muxer=fifo --enable-muxer=tee --enable-parser=h264 --enable-parser=aac --enable-protocol=file --enable-protocol=tcp --enable-protocol=rtmp --enable-protocol=cache --enable-protocol=pipe --enable-filter=aresample --enable-filter=allyuv --enable-filter=scale --enable-libfreetype --enable-indev=v4l2 --enable-indev=alsa --enable-omx --enable-omx-rpi --enable-encoder=h264_omx --enable-mmal --enable-hwaccel=h264_mmal --enable-decoder=h264_mmal make -j4 sudo make install如果沒有出現異常,即可以使用硬件加速進行轉碼。使用方法如下:
ffmpeg -i <inputfile> -s <1280x720 {分辨率設置}> -c:v h264_omx -b:v <碼率設置 如 2000k> <outputfile>當然,目前樹莓派3B 用來做轉碼任務,還是存在不少問題。比如,文件傳輸速度慢,一般上傳的速度只有3~5M一秒,傳輸一個5G的文件要等待非常長的時間,當文件轉碼完成后,還需要下載回來,又需要漫長的等待。此外,雖然使用了硬件加速,轉碼速度有所提升,但是,經我測試,將一個兩個半小時的1080P視頻轉成一個720P的視頻,需要用到接近6個小時,同樣的任務在 I5 平臺上只需要 1 個小時。當然,這些問題都將會在樹莓派4中得到提升。至于具體會提升多少,待買到新機器到手后再進行測試。
總結
以上是生活随笔為你收集整理的ffmpeg 硬件解码rtsp流_树莓派使用硬件加速视频转码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华硕路由 ac ax_WiFi 6 路由
- 下一篇: keras concatenate_Ke