2015年7月26日日曜日

FFmpeg H265(HEVC) Nvidia GPUエンコード

Nvidiaの新しいグラボGTX960を買ったので、GPUエンコード(NVENC)を試してみた。

1.FFmpegをビルド
NVEncを使用できるFFmpegの配布は制限されているようなので、自分でビルドしなくてはいけない。

ffmpeg-windows-build-helpersを使うと簡単にビルドできる。そこで、まずUbuntuをvirutalbox上にセットアップ

スクリプトを実行していくつかの質問に答えると、必要なファイルをダウンロードしてコンパイルし、ffmpeg.exeファイルが出来上がる。

2.H265(HEVC) でエンコード

D:\> ffmpeg.exe -i test_movie.ts -vcodec nvenc_hevc -b:v 3M -vf yadif=1:-1:0,scale=1280:-1 test_movie.mp4

-b:v 3M
 ビデオ・ビットレートを3Mbpsに指定。
 HD映像だとビデオ・ビットレートは3Mbpsくらいが下限な感じ。

-vf yadif=1:-1:0
 インタレースを解除して60fps化する。(カクツキを抑えヌルヌルな映像にする)

-vf scale=1280:-1
 元の映像が 1440x1080 なので1割程度ダウンサイズ。(画質を維持しつつデータサイズを圧縮するため)

2 件のコメント: