広告

Atom x5-Z8550 (DG-STK4D) で FFmpeg + QSV (h264_qsv) を使用したリアルタイムエンコード

神奈川県綾瀬市のふるさと納税の返礼品として、Diginnos Stick DG-STK4D が届きました。6月上旬にふるさと納税をして、1ヶ月後くらいに届きました。60,000円 です。

ちなみに昨年は、長野県喬木村のふるさと納税の返礼品として、EPSON Endeavor TN21E を受け取っていました。

DG-STK4D の CPU は Intel Atom x5-Z8550 で Cherry Trail であり、OS は Windows 10 Home 64bit です。ということは、これは QSV を使用できる、ということは、FFmpeg で h264_qsv でリアルタイムエンコードができるのでは、と試してみました。

Windows 64bit で QSV 対応の FFmpeg をビルドするのは過去にやっていました。

その時との差異としては、MSYS2 のバージョンが msys2-x86_64-20180531 になったのと、これを書いている時点で FFmpeg の最新のリリースバージョンである 4.0.1 を使用したことくらいです。

注意点としては、Atom だとビルドにすごく時間がかかります。configure と make で半日コースです。Atom ではない Windows 64bit マシンがあれば、そちらでビルドしたほうがよいです。

で、FFmpeg の exe ファイルができたところで h264_qsv のエンコードを行ってみました。

なんと、1920×1080 の解像度でビットレート 6Mbps で speed=3.37x です。Atom なのに。Windows を使うと、Atom でも QSV を使えてリアルタイムエンコードができるなんて。Linux だと Core シリーズじゃないとサポートされていないのに。

.\\ffmpeg.exe -i .\sintel_trailer-1080p.mp4 -acodec aac -ab 128k -ar 48000
-ac 2 -s 1920x1080 -vcodec h264_qsv -init_hw_device qsv:hw -b:v 6000k output.mp4
ffmpeg version 4.0.1 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 7.3.0 (Rev2, Built by MSYS2 project)
  configuration: --enable-libmfx --disable-shared --enable-static --extra-ldflags=-static --extra-libs='-lsupc++ -lstdc++'
  libavutil      56. 14.100 / 56. 14.100
  libavcodec     58. 18.100 / 58. 18.100
  libavformat    58. 12.100 / 58. 12.100
  libavdevice    58.  3.100 / 58.  3.100
  libavfilter     7. 16.100 /  7. 16.100
  libswscale      5.  1.100 /  5.  1.100
  libswresample   3.  1.100 /  3.  1.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '.\sintel_trailer-1080p.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    creation_time   : 1970-01-01T00:00:00.000000Z
    title           : Sintel Trailer
    artist          : Durian Open Movie Team
    encoder         : Lavf52.62.0
    copyright       : (c) copyright Blender Foundation | durian.blender.org
    description     : Trailer for the Sintel open movie project
  Duration: 00:00:52.21, start: 0.000000, bitrate: 2240 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080, 2108 kb/s, 24 fps, 24 tbr, 24 tbn, 48 tbc (default)
    Metadata:
      creation_time   : 1970-01-01T00:00:00.000000Z
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 126 kb/s (default)
    Metadata:
      creation_time   : 1970-01-01T00:00:00.000000Z
      handler_name    : SoundHandler
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (h264_qsv))
  Stream #0:1 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
Output #0, mp4, to 'output.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    description     : Trailer for the Sintel open movie project
    title           : Sintel Trailer
    artist          : Durian Open Movie Team
    copyright       : (c) copyright Blender Foundation | durian.blender.org
    encoder         : Lavf58.12.100
    Stream #0:0(und): Video: h264 (h264_qsv) (avc1 / 0x31637661), nv12, 1920x1080, q=2-31, 6000 kb/s, 24 fps, 12288 tbn, 24 tbc (default)
    Metadata:
      creation_time   : 1970-01-01T00:00:00.000000Z
      handler_name    : VideoHandler
      encoder         : Lavc58.18.100 h264_qsv
    Side data:
      cpb: bitrate max/min/avg: 0/0/6000000 buffer size: 0 vbv_delay: -1
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      creation_time   : 1970-01-01T00:00:00.000000Z
      handler_name    : SoundHandler
      encoder         : Lavc58.18.100 aac
frame= 1253 fps= 81 q=-0.0 Lsize=   29851kB time=00:00:52.12 bitrate=4691.4kbits/s speed=3.37x
video:29018kB audio:800kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.111523%
[aac @ 00000000026cdc00] Qavg: 2941.320

ただ、何が原因なのかわかりませんが、たまに下記のようなエラーが発生する場合があります。が、何回かリトライすればまたエンコードできるようになります。謎。

[h264_qsv @ 0000000004609600] Error during encoding: device failed (-17)
Video encoding failed

広告

DG-STK4D

Posted by admin