ffmpeg 硬件解码rtsp流_树莓派使用硬件加速视频转码
現(xiàn)在隨著智能設(shè)備普及以及寬帶的升級(jí),越來越的的視頻素材在不斷的產(chǎn)生。無論是我們自己拍攝的視頻,還是從網(wǎng)上收集來的電影、電視劇,并不是全部都值得我們保存最高清的版本。打個(gè)比方,比如你下載了一個(gè) 1080P 甚至是 4K 的電影視頻,看完了之后,覺得這個(gè)電影值得收藏,但又不至于非常喜歡。一個(gè) 1080P 2個(gè)小時(shí)左右的視頻可能大概有 5G 左右,如果將其壓縮到 720P,那么視頻文件大小可能會(huì)減少一半有多(具體還視碼率及多個(gè)參數(shù)影響)。而且視頻質(zhì)量的觀感并不會(huì)降低太多。
然而,使用我們的電腦進(jìn)行轉(zhuǎn)碼,雖然說有很多現(xiàn)成的軟件,但是轉(zhuǎn)碼的時(shí)候一般會(huì)占用很多的CPU資源,導(dǎo)致影響我們的日常使用。另一方面,如果需要對(duì)大量視頻進(jìn)行轉(zhuǎn)碼,如一套幾十集的連續(xù)劇,那么長時(shí)間開啟電腦轉(zhuǎn)碼也會(huì)浪費(fèi)不少電。
如果能用一套低功耗的系統(tǒng),就能完成這一目的,那是最好不過的。但是,目前能達(dá)到這一要求的設(shè)備,其實(shí)并不多。本來 NAS 非常適合這項(xiàng)工作,然而,中低端的群暉的性能都非常一般,并不適合用來轉(zhuǎn)碼。而帶轉(zhuǎn)碼功能的群暉,價(jià)格非常高。當(dāng)然,也可以使用類似 J3455 J4105 J5005 等低功耗集成平臺(tái),組裝一臺(tái) NAS,或者買一個(gè)蝸牛星際的礦渣(J900)。如果配置一套這樣的系統(tǒng),先不論軟硬件安裝配置的問題,這樣一通操作下來,還不如直接用電腦來進(jìn)行轉(zhuǎn)碼。
最近樹莓派4已經(jīng)開賣了,新的樹莓派有千兆網(wǎng)卡、還有USB3.0 ,而且性能還有大幅的提高。所以現(xiàn)在樹莓派 I/O 慢,網(wǎng)絡(luò)傳輸慢的問題基本都解決了,再加上樹莓派的能耗低,自然就成了轉(zhuǎn)碼的首選。
由于樹莓派4還沒發(fā)貨,所以先用我手上的樹莓派3B來進(jìn)行測(cè)試。
樹莓派使用默認(rèn)的 ffmpeg 進(jìn)行轉(zhuǎn)碼,是使用 CPU 進(jìn)行轉(zhuǎn)碼的,效率是非常低的。我們可以通過使用源碼編譯的方式來安裝 ffmpeg,就可以使用硬件加速轉(zhuǎn)碼了。在具體配置之前,先來看效果的對(duì)比。這里我使用了一段一分多種的 Sony 大法廣告視頻作為素材進(jìn)行轉(zhuǎn)碼,源視頻為 1080P 3000kbpps 碼率的視頻,然后使用樹莓派3B 對(duì)其轉(zhuǎn)碼成 720p 2000kbpps 碼率的視頻,同時(shí)使用 i5 4570 進(jìn)行對(duì)比。
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可以看到,樹莓派使用硬件加速轉(zhuǎn)碼可以提速接近4倍,但是,和電腦的 i5 相比,差不多慢了3倍多。然而,樹莓派滿載的功耗也不過10W左右,我的這個(gè)i5平臺(tái)滿載轉(zhuǎn)碼功率差不多100多W,所以,使用樹莓派來完成一些不要緊的轉(zhuǎn)碼任務(wù),還是有一定可行性的。
下面,介紹一下樹莓派使用硬件加速進(jìn)行轉(zhuǎn)碼的配置
# 更新軟件源 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如果沒有出現(xiàn)異常,即可以使用硬件加速進(jìn)行轉(zhuǎn)碼。使用方法如下:
ffmpeg -i <inputfile> -s <1280x720 {分辨率設(shè)置}> -c:v h264_omx -b:v <碼率設(shè)置 如 2000k> <outputfile>當(dāng)然,目前樹莓派3B 用來做轉(zhuǎn)碼任務(wù),還是存在不少問題。比如,文件傳輸速度慢,一般上傳的速度只有3~5M一秒,傳輸一個(gè)5G的文件要等待非常長的時(shí)間,當(dāng)文件轉(zhuǎn)碼完成后,還需要下載回來,又需要漫長的等待。此外,雖然使用了硬件加速,轉(zhuǎn)碼速度有所提升,但是,經(jīng)我測(cè)試,將一個(gè)兩個(gè)半小時(shí)的1080P視頻轉(zhuǎn)成一個(gè)720P的視頻,需要用到接近6個(gè)小時(shí),同樣的任務(wù)在 I5 平臺(tái)上只需要 1 個(gè)小時(shí)。當(dāng)然,這些問題都將會(huì)在樹莓派4中得到提升。至于具體會(huì)提升多少,待買到新機(jī)器到手后再進(jìn)行測(cè)試。
總結(jié)
以上是生活随笔為你收集整理的ffmpeg 硬件解码rtsp流_树莓派使用硬件加速视频转码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华硕路由 ac ax_WiFi 6 路由
- 下一篇: keras concatenate_Ke