LinuxでQSVとH.264のエンコード対決

先日の記事、でLinuxでH.264の動画をエンコードできることを紹介しました。 そのベンチマークをとってみました。QSVでのエンコードとlibx264を用いたエンコードの比較となります。

今回エンコード時間の比較に用いた動画は以下のものを利用しました。

Big Buck Bunny

Big Buck Bunny

ここの、big_buck_bunny_1080p_surround.aviを以下の表のオプションでLibx264とQSVでのエンコードで変換し、比較をしてみました。

項目
音声コーデックコピー
ビットレート2000kbps
サイズ1280x720
フレームレート29.97

このオプションで起動すると、ffmpeg -i big_buck_bunny_1080p_surround.avi -acodec copy -vcodec コーデック -b

2000k -s 1280x720 -r 30000/1001 -y 出力ファイルという起動オプションになります。

目次

Open 目次

  1. 仮想8コアでx264エンコード
  2. 仮想8コアでQSVエンコード
  3. 仮想1コアでx264エンコード
  4. 仮想1コアでQSVエンコード
  5. 仮想1コアで複数のQSVエンコード…?
  6. ファイルサイズ比較
  7. 品質について
  8. まとめ

仮想8コアでx264エンコード

Xeon搭載マシンで動かしているKVMに仮想8コアを割り当てた環境でエンコードしてみました。 FFmpegの粋な計らいによって、エンコード中は以下のようにたくさんのスレッドが立ちがあり、マシンはエンコードに専念していました。

x264 8core encode

CPUはエンコード中、全コア90%前後の使用率を維持していました。そんなエンコードにかかった時間は以下の通りでした。

real    2m50.118s
user    20m15.617s
sys     0m7.375s

10分の動画を3分足らずでエンコードしてしまいました。恐るべきコア数の暴力。

仮想8コアでQSVエンコード

先ほどと同じ環境でQSVを用いたエンコードをしてみました。 こちらもFFmpegによって複数のスレッドによる処理がされるのですが、CPUの負荷は多くて各コア10%程度となる非常に省エネなエンコードとなっていました。

QSV 8core encode

こんな省エネでもエンコードに要する時間はそれほどかかりませんでした。

real    3m6.697s
user    2m56.301s
sys     0m4.871s

3分とちょっとでエンコードが完了しています。さすがにXeon 8コアにはかなわないようです。

仮想1コアでx264エンコード

KVMで割り当てコア数を1コアに設定し、x264を用いたエンコードをしてみました。 負荷はほぼ100%、まれに90%前後になる程度でした。

x264 1core encode

じっくりエンコードしてかかった時間は以下のとおりです。

real    10m56.739s
user    10m54.374s
sys     0m1.070s

動画再生時間+10%程度の時間がかかっていました。

仮想1コアでQSVエンコード

QSVとコア数の関係性は不明ながら、比較のために同じ環境でQSVでもエンコードしてみました。 負荷はほとんどないかと思ってたのですが、エンコーダに渡す前処理などで少々CPUを使うようで、90%前後まで達したり0%付近をうろうろしたりと、不安定な負荷がかかっていました。また、なぜか2スレッドで処理していました。

qsv 1core encode

要した時間は以下のとおりです。

real    3m0.692s
user    2m35.944s
sys     0m0.972s

予想はついていましたが、QSVでは8コアでも1コアでもほとんど時間は変わらないようです。

仮想1コアで複数のQSVエンコード…?

記事公開直後にこのような気になる意見をいただきました。

早速、QSVでの同時エンコードを試してみました。 tmuxで分割し、上下のコンソールで同時にエンコードを開始してみた結果が以下の画像のとおりになります。

qsv 1core multi encode

ライブラリがIGPへアクセスできないようでアクセス違反起こして終了してしまうため、QSVでの同時エンコードはダメでした。

ファイルサイズ比較

ビットレート固定なのでそれほど違いはありませんが、ファイルサイズは以下のようになっています。

$ ls -l
total 1261812
-rw-rw-r--. 1 ninniku ninniku 928670754 May  6  2008 big_buck_bunny_1080p_surround.avi
-rw-rw-r--. 1 ninniku ninniku 179373021 Jan 31 02:27 big_buck_bunny_qsv.mp4
-rw-rw-r--. 1 ninniku ninniku 184045287 Jan 31 02:23 big_buck_bunny_x264.mp4

QSVでエンコードしたほうが4MBほどファイルサイズが小さくなっていました。

品質について

x264とQSVの比較では目立った差異は見受けられなかったです。視力の問題かもしれませんが。

まとめ

動画再生時間の3分の1程度でエンコードができるQSVはLinuxでもすごい。

Related Posts

KVMでQSVするためIntel HD Graphicsパススルーするー

この記事は Linux Advent Calendar 2014 12日目の記事です。12月も中頃となり寒い日が続きますね。みなさん体調はいかがでしょうか。先日の こたつを温める実験 で十分な...

read more

Intel QSVのH.264エンコードをLinuxで!

前回の記事 から1ヶ月以上空いてしまいました。遅ればせながらで申し訳ありません。続編です。 Intel QSVは高速にある程度の画質のエンコードできてよいです。とても。今回はKVMでIntel H...

read more
Raspberry Pi2にOSMC入れてKodi(旧:XBMC)日本語化するまで

Raspberry Pi2にOSMC入れてKodi(旧:XBMC)日本語化するまで

今月頭の発表で一気に盛り上がりを見せた Raspberry Pi 2 Model B 。もちろん発売日に購入しました。 手元にはRaspberry Pi BとGalileo Gen2の2つのLinux...

read more
KodiとChinachuで地デジLive視聴 on Raspberry Pi2 w/ OSMC

KodiとChinachuで地デジLive視聴 on Raspberry Pi2 w/ OSMC

どうも、Raspberry Pi2で遊ぶ毎日が続いております。 Raspberry Pi model B(2ではない)にRaspbmcを入れて昨年の夏頃からChinachu経由で地上デジタル放送を視聴...

read more
KodiでChinachuの録画を観るAdd-on作った

KodiでChinachuの録画を観るAdd-on作った

Raspberry Pi2でKodi(旧:XBMC)が快適に動き、地デジのLIVE視聴環境として優れているので、 Chinachuの本領である録画した動画の視聴したみが高まってきました。Kodiに...

read more
Kodi Chinachu PVRアドオンでRasPi2/Android TVをテレビに

Kodi Chinachu PVRアドオンでRasPi2/Android TVをテレビに

暑い日が続きますね。こういう日はエアコンの効いた部屋でだらだらとテレビを見たいものです。 しかしテレビをもっておりません。27インチのモニタを持っているのみです。ただ、今年2月に記事にしたように、...

read more
クリスマスなのでLinuxでQSVエンコードする

クリスマスなのでLinuxでQSVエンコードする

こちらは DTV Advent Calendar 21日目の記事です。みなさん録画データの管理はどうしていますか? 視聴したら消す人もいれば、視聴しても残しておく人、視聴してない詰みTSがたくさん...

read more
Harekaze for Kodi (pvr.chinachu) 4.0.0 リリース

Harekaze for Kodi (pvr.chinachu) 4.0.0 リリース

KodiとChinachuがシームレスに連携し、快適に地デジが視聴できるアドオン Harekaze for Kodi(pvr.chinachu) をKodi 17 Krypton に対応したバージョン...

read more
HDMI入力をRaspberry Piで駆使する

HDMI入力をRaspberry Piで駆使する

昨今の衰えることのない技術トレンドに追従すべく、映像配信とかやりたいなーと思っていた2019年。 めっきり時間がなく何もできず、気付けば2020年になっていました。今年も時間がないだろうなぁと思っ...

read more
UAC GadgetでNintendo Switchの音声出力をRaspberry Piに取り込む

UAC GadgetでNintendo Switchの音声出力をRaspberry Piに取り込む

前回の記事 でHDMI映像入力をRaspberry Piで扱う方法を紹介し、その最後に音声の取り込みについて、まだ課題が残っていると書きました。 HDMI入力からの音声取り込みといった、本質的な課題の...

read more
Raspberry PiでHDMIディスプレイを調査する[EDID/CEC]

Raspberry PiでHDMIディスプレイを調査する[EDID/CEC]

みなさん、テレビやディスプレイに備わるHDMIの情報を確認する必要に迫られることはありませんか? 1年に一度くらいはありますよね。映像がうまく映らなかったり、操作がうまくいかなかったり。 そんな時にパ...

read more
LibreELECで地デジを楽しむためにMirakurunとEPGStationを一発で動かす

LibreELECで地デジを楽しむためにMirakurunとEPGStationを一発で動かす

地上デジタル放送をRaspberry Piで視聴する定番の組み合わせを、ノーコード・コマンドライン操作なしに、すなわち一発でセットアップできるようにした。...

read more
SIRUI 35mm/F1.8 1.33xアナモルフィックレンズで夜景を撮る

SIRUI 35mm/F1.8 1.33xアナモルフィックレンズで夜景を撮る

ずっと欲しかったアナモルフィックレンズを手に入れた。SIRUI 35MM /F1.8 1.33X ANAMORPHIC LENS最近カメラを手にする人が増えているようなので、どうせならとレンズ...

read more
Raspberry Pi CM4とCSI-2接続HDMI入力基板で音も取る

Raspberry Pi CM4とCSI-2接続HDMI入力基板で音も取る

2年前に投稿した HDMI入力をRaspberry Piで取り込む記事 では映像しか取得していませんでしたが、このHDMI入力基板には音声も取り込めるチップ TC358743 が搭載されています。 取...

read more
NAS用OSにRockstorという選択

NAS用OSにRockstorという選択

みなさんはNASのOSとして何を使っていますか? FreeNAS、OpenMediaVault、巷にはいくつもOSSのNAS用OSがあります。 なにを選んだらいいのでしょう?少し前までは非力なAt...

read more
RockstorにChinachuを詰め込んで録画NAS作ろ

RockstorにChinachuを詰め込んで録画NAS作ろ

昨日紹介したRockstor というNAS用OS、とても便利で快適に使っています。 今まで低消費電力で非力なマシンで動作させていたNASもCore i5で動作するようになり、 もっといろいろとやらせて...

read more