先日CPUクーラーを交換してからとても動画変換が快適になりました。
TS録画ファイルはamatsukazeに任せておいて問題ないのですが、youtubeなどで必要となるwebmやAV1の動画をスマホでチェックする際はMP4に変換しておかないと見られません。(私の環境が悪いのかもしれませんが)
そこで必要となるのがffmpegです。コマンドラインで動く多機能変換プログラムですね。
AV1(libAOM使用)は最近出来たコーデックです。これらを組み込んだビルド済みは配布されている様子ですが、私はlibFDKaacも使いたいのでそれらを変換できるようコンパイルしてみようかと思います。
コンパイルは簡単に済ませたいので今回はWindows10にWSLを導入しubuntu上でクロスコンパイルするffmpeg-windows-build-helpersを利用します。
詳細は色々な方が書かれていますのでそれに従えば簡単にビルドできます。
参考https://blog.tsukumijima.net/article/ffmpeg-windows-build/
私はまだ32bit版でも使えるようにしたかったのでビルド選択の部分は32bitを選択しました。どちらで作っても大丈夫です。
参考サイトで手順通り作るとi5-3570K(ivy)で4時間かかりました。
コンパイルオプションは
./cross_compile_ffmpeg.sh --build-ffmpeg-static=y --build-intel-qsv=y --disable-nonfree=n
で最新版をビルドしました。
それでここからが手を加える部分になります。
私は操作を簡略化させるために携帯動画変換君(3GPConverter)を利用しているのですが、上記参考で作った物では停止やプログレスバーが動かない物が出来上がっています。
そこでそれらが動くようにパッチを当てておこうというお話です。
それではスタートします。
まず出来上がったffmpegが存在するディレクトリに移動します。
\\wsl$\Ubuntu\root\ffmpeg-windows-build-helpers\sandbox\(64bitならwin64・32bitならwin32)\ffmpeg_git_with_fdk_aacなどになります。
そこでパッチを頂くのは
参考http://blog.k-tai-douga.com/category/352503-1.html
の
http://abechin.sakura.ne.jp/sblo_files/k-tai-douga/ffmpeg/ffmpeg-20180311.diff
をwgetなどでダウンロードします。
そして
patch -p1 < ffmpeg-20180311.diff
としてパッチを当てます。
あとはディレクトリを戻って
./cross_compile_ffmpeg.sh --build-ffmpeg-static=y --build-intel-qsv=y --disable-nonfree=n
でコンパイルします。他のモジュールはすでにコンパイル済みなのでffmpegだけがターゲットです。
出来上がったffmpeg.exeを名前を変えるかそのまま上書きするか3GPConverterのcoreに入れます。あとはiniファイルを作れば完了です。
QSVもNVEncもlibFDKaacも使いたい放題です。例えば
[Item1] Title=NVEncAndFDK Command0=""<%AppPath%>\cores\ffmpeg" -stats -y -i "<%InputFile%>" -c:v h264_nvenc -pix_fmt nv12 -rc constqp -qmin 20 -qmax 26 -acodec libfdk_aac -b:a 128k -afterburner 1 -threads 4 -f mp4 "<%OutputFile%>.mp4""
などなど。ffmpegのオプションはffmpeg -hから参照してください。
コメント