Archive: 2017/02/03

UbuntuとNVENC

Ubuntuでのハードウェアエンコード環境構築作業は先月18日24日とGStreamer+VAAPIにトライしたもののまだ先が長そうだ。

とはいえGT110bにもひと月分の録画済みファイルが溜まってしまったので、気分転換も兼ねてCUDA改めNVENCを試してみることに。

まずはGT710なMSI GT710 1GD3H LPを突っ込んで、libcudaとnvidiaドライバをインストール。

yano@haswell:~$ sudo apt-get install libcuda1-367 nvidia-367 nvidia-367-dev
nvidiaドライバと喧嘩するらしいnouveauをblacklistに登録して再起動。 続いてCompilationGuide/Ubuntuを読みながら、ffmpegのインストール。と思ったが、気まぐれに"ffmpeg -encoders"を見たところ、"NVIDIA NVENC H.264 encoder"が有効になっている事に気付いた。
yano@haswell:~$ ~/bin/ffmpeg -encoders 2>&1 | grep NVIDIA
V..... h264_nvenc NVIDIA NVENC H.264 encoder (codec h264)
V..... nvenc NVIDIA NVENC H.264 encoder (codec h264)
V..... nvenc_h264 NVIDIA NVENC H.264 encoder (codec h264)
V..... nvenc_hevc NVIDIA NVENC hevc encoder (codec hevc)
V..... hevc_nvenc NVIDIA NVENC hevc encoder (codec hevc)
yano@haswell:~$
ダメ元で
yano@haswell:~$ ~/bin/ffmpeg -i input.ts -vcodec h264_nvenc ouput.mkv
yano@haswell:~$
てな感じで動かしたところ、あっさりエンコードできたっぽい。まだチューニングの余地はあるものの
yano@haswell:~/cuda$ ~/bin/ffmpeg -y -i ./20161215_0012_28_GRhd.ts \
-threads 2 -vcodec h264_nvenc -deinterlace -preset medium \
-profile:v high -cq 26 -b:v 2.5M -filter:v yadif -s hd720 \
-acodec aac -ac 2 -ar 48000 -ab 128k -map 0:0 -map 0:1 \
-f mp4 ./20161215_0012_28_GRhd.mp4
yano@haswell:~/cuda$
というところでスピードと画質はQSV(VAAPI)と遜色なく、エクスプローラーでの詳細情報で時間などが表示されない問題も無い事から、早速GT110bへの展開を決定。