Windows機で動画エンコード

環境

素材

前回と同じように1080p 29.97Fに変換します。

  • sony_xavcs_30p.MP4
    • 1920 × 1080 29.97fps
    • 50Mbps
    • Sony RX100M4 X-AVCS
    • 11175F
    • 6分13秒
  • canon_uhd.MP4
    • 3840x2160 29.97fps
    • 120Mbps
    • Canon PowerShot G7 X Mark III
    • 1423F
    • 47秒
  • gh5_422_uhd.MP4
    • 3840x2160 29.97fps
    • 150Mbps
    • LUMIX GH5
    • 1770F
    • 59秒

Adobe Media Encoder編

Input Codec Min:Sec FPS
sony_xavcs_30p.MP4 H.264 0:26 429
HEVC(H.265) 0:41 272
canon_uhd.MP4 H.264 0:12 118
HEVC(H.265) 0:13 109
gh5_422_uhd.MP4 H.264 0:27 65
HEVC(H.265) 0:28 63

f:id:taku-woohar:20200512234309p:plain

sony_xavcs_30p.MP4 と canon_uhd.MP4の場合はIntel内臓GPUでデコードを行い、GeForceエンコードを行なっているため、かなり早いです。

f:id:taku-woohar:20200512233954p:plain

gh5_422_uhd.MP4の場合は、デコードをCPUで行なっているためこちらが性能は下がり気味です。

FFmpeg

FFmpegはChocolateyでインストールしたバージョン4.2.2を使用します。

Input Codec FPS
sony_xavcs_30p.MP4 libx264 44
h264_nvenc 266
libx265 16
hevc_nvenc 166
canon_uhd.MP4 libx264 40
h264_nvenc 92
libx265 17.5
hevc_nvenc 91
gh5_422_uhd.MP4 libx264 32
h264_nvenc 80
libx265 21.01
hevc_nvenc 78

ffmpegの場合は全てCPUでデコードを行います。Adobe Media Encoder程速度は出ていない印象です。ただしnvencの性能は高いです。

ffmpeg -y -i sony_xavcs_30p.MP4 -c:v libx264 -b:v 5000k fhd2fhd_x264_1.mp4
ffmpeg -y -i sony_xavcs_30p.MP4 -c:v h264_nvenc -b:v 5000k fhd2fhd_nvenc_h264_1.mp4
ffmpeg -y -i sony_xavcs_30p.MP4 -c:v libx265 -b:v 5000k fhd2fhd_h265_1.mp4
ffmpeg -y -i sony_xavcs_30p.MP4 -c:v hevc_nvenc -b:v 5000k fhd2fhd_nvenc_hevc_1.mp4


ffmpeg -y -i canon_uhd.MP4 -vf "scale=1920:-1" -c:v libx264 -b:v 5000k uhd2fhd_x264_1.mp4
ffmpeg -y -i canon_uhd.MP4 -vf "scale=1920:-1" -c:v h264_nvenc -b:v 5000k uhd2fhd_nvenc_h264_1.mp4
ffmpeg -y -i canon_uhd.MP4 -vf "scale=1920:-1" -c:v libx265 -b:v 5000k uhd2fhd_h265_1.mp4
ffmpeg -y -i canon_uhd.MP4 -vf "scale=1920:-1" -c:v hevc_nvenc -b:v 5000k uhd2fhd_nvenc_h265_1.mp4


ffmpeg -y -i gh5_422_uhd.MP4 -vf "scale=1920:-1" -c:v libx264 -b:v 5000k -pix_fmt yuv420p uhd422_to_fhd_x264_1.mp4
ffmpeg -y -i gh5_422_uhd.MP4 -vf "scale=1920:-1" -c:v h264_nvenc -b:v 5000k  -pix_fmt yuv420p uhd422_to_fhd_nvenc_h264_1.mp4
ffmpeg -y -i gh5_422_uhd.MP4 -vf "scale=1920:-1" -c:v libx265 -b:v 5000k -pix_fmt yuv420p uhd422_to_fhd_h265_1.mp4
ffmpeg -y -i gh5_422_uhd.MP4 -vf "scale=1920:-1" -c:v hevc_nvenc -b:v 5000k -pix_fmt yuv420p uhd422_to_fhd_nvenc_h265_1.mp4