web-dev-qa-db-ja.com

FFmpegはアルファチャネル付きのmovをアルファチャネル付きのwebmに変換できません

Ffmpegでアルファチャンネル付きのmovをアルファチャンネル付きのwebmに変換しようとしています。しかし、私が得たのはwebmビデオアルファチャネルなしでした。私の方法はそれらのリンクに基づいています:

私が使用したコード:

ffmpeg -i input.mov -c:v libvpx-vp9 output.webm

そしてここでの出力:

ffmpeg version 4.1 Copyright (c) 2000-2018 the FFmpeg developers
  built with Apple LLVM version 10.0.0 (clang-1000.11.45.5)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1_2 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --Host-cflags= --Host-ldflags= --enable-ffplay --enable-gpl --enable-libmp3lame --enable-libopus --enable-libsnappy --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libspeex --enable-videotoolbox
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'overlap_1.mov':
  Metadata:
    major_brand     : qt  
    minor_version   : 537199360
    compatible_brands: qt  
    creation_time   : 2019-01-17T08:43:07.000000Z
  Duration: 00:00:04.00, start: 0.000000, bitrate: 34346 kb/s
    Stream #0:0(eng): Video: qtrle (rle  / 0x20656C72), bgra(progressive), 1080x1080, 32249 kb/s, SAR 1:1 DAR 1:1, 24 fps, 24 tbr, 24 tbn, 24 tbc (default)
    Metadata:
      creation_time   : 2019-01-17T08:43:07.000000Z
      handler_name    : Apple Video Media Handler
      encoder         : Animation
      timecode        : 00:00:00:00
    Stream #0:1(eng): Data: none (tmcd / 0x64636D74), 0 kb/s (default)
    Metadata:
      creation_time   : 2019-01-17T08:43:07.000000Z
      handler_name    : Time Code Media Handler
      timecode        : 00:00:00:00
File 'overlap_C1.webm' already exists. Overwrite ? [y/N] y
Stream mapping:
  Stream #0:0 -> #0:0 (qtrle (native) -> vp9 (libvpx-vp9))
Press [q] to stop, [?] for help
[libvpx-vp9 @ 0x7ffdb8018200] v1.7.0
Output #0, webm, to 'overlap_C1.webm':
  Metadata:
    major_brand     : qt  
    minor_version   : 537199360
    compatible_brands: qt  
    encoder         : Lavf58.20.100
    Stream #0:0(eng): Video: vp9 (libvpx-vp9), yuva420p, 1080x1080 [SAR 1:1 DAR 1:1], q=-1--1, 200 kb/s, 24 fps, 1k tbn, 24 tbc (default)
    Metadata:
      creation_time   : 2019-01-17T08:43:07.000000Z
      handler_name    : Apple Video Media Handler
      timecode        : 00:00:00:00
      encoder         : Lavc58.35.100 libvpx-vp9
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
frame=   96 fps=1.6 q=0.0 Lsize=     145kB time=00:00:03.95 bitrate= 299.9kbits/s speed=0.0649x    
video:70kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 106.879829%

出力によると、次のことがわかります。

  • ビデオコーデック:vp9
  • ピクセルフォーマット:yuva420p
  • ファイル形式:webm

見た目は問題ありませんが、IINA(優れたビデオプレーヤー)とChrome)でこのビデオを再生しようとすると、ビデオはアルファチャネルではなく黒色で表示されました。アルファチャネルなし!

そして、コーデックvp8を試してみたところ、同じ効果のwebmビデオが表示されました。何が起こったのかわかりません。これが私の状況です:

  • システム:macOS mojave 10.14.2
  • libvpx:有効にする
  • xcode:インストール済み

誰かが私にアドバイスをくれることを願っています、ありがとう!

1
Albert Leung

質問は解決したと思います。 webmビデオにアルファチャンネルがあるかどうかの確認を間違えました。これは、2つのソフトウェアでアルファチャネルを使用してmovを再生し、アルファチャネルを使用してwebmを再生した結果です。

[〜#〜] iina [〜#〜](ビデオプレーヤーはGithubで17034を見つめていました)

  • mov:黒と白の正方形の背景
  • webm:黒い色の背景

Chrome(バージョン71、安定版)

  • mov:非サポート
  • webm:黒い色の背景

これまでのところ、黒い背景は、webmビデオにアルファチャネルがないと私に思わせました。

次に、 website display how Chrome support the webm video with alpha channel。非常に興味深いのは、webmビデオの背景色を変更できることです。次にチェックしました。 htmlコードでは、CSSを使用して背景色を制御していました。webmビデオにアルファチャネルがあるかどうかを確認するのに最適な方法です。

だから私は私のwebmビデオを確認するためにこの手順を実行しました:

  1. chromeでwebmビデオを開く
  2. 開発者ツールを入力してください
  3. cSSコードをビデオタグに追加します

    style = "background-color:rgb(0,255,0)"

  4. webmビデオにアルファチャネルがある場合、ビデオの背景は[〜#〜]緑[〜#〜]に変更されるか、変更されません何でも起こります。そして幸運なことに私のwebmビデオにはアルファチャンネルがあります!

ありがとう、これがお役に立てば幸いです。

1
Albert Leung