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-devnvidiaドライバと喧嘩するらしい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 \というところでスピードと画質はQSV(VAAPI)と遜色なく、エクスプローラーでの詳細情報で時間などが表示されない問題も無い事から、早速GT110bへの展開を決定。
-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$