參考:
需要額外安裝:
nasm(https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/nasm-2.13.03.tar.gz)
./configure
make
sudo make install
nv-codec-headers(https://github.com/FFmpeg/nv-codec-headers)
make
sudo make install
x264(https://www.videolan.org/developers/x264.html)
./configure --enable-shared //動態庫
make
sudo make install
LAME (Lame Aint an MP3 Encoder)(https://sourceforge.net/projects/lame/files/lame/)
./configure
make
sudo make install
ffmpeg配置(和參考中的不同):
./configure --enable-shared --prefix=/usr/local/ffmpeg --enable-gpl --enable-libx264 --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib --enable-cuvid --extra-cflags="-Invidia_sdk -I/usr/local/cuda-10.1/include" --extra-ldflags="-Lnvidia_sdk -L/usr/local/cuda-10.1/lib64" --enable-cuda --enable-nvenc --prefix=/usr/local/ffmpeg
ffmpeg要將單個H.264編碼的基本比特流文件解碼為YUV:
ffmpeg -vsync 0 -c:v h264_cuvid -i <input.mp4> -f rawvideo <output.yuv>
實時查看nvidia顯卡顯存占用情況:
watch -n 0 nvidia-smi
視頻解碼:將被壓縮的視頻(h264格式)還原為YUV視頻流,CPU是軟解碼,GPU是硬解碼。