1

Я пытаюсь преобразовать MOV с альфа-каналом в WebM с альфа-каналом с помощью ffmpeg. Тем не менее, я получил веб-видео без альфа-канала. Мои методы основаны на этих ссылках:

Код, который я использовал:

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 ответ1

1

Я думаю, что вопрос был решен. Я сделал ошибку, подтвердив, есть ли на webm-видео альфа-канал. Это результат, который я играл в MOV с альфа-каналом и WebM с альфа-каналом с 2 программами.

ИИНА (видео плеер смотрел 17034 на Github)

  • mov: фон с черными и белыми квадратами
  • Webm: фон с черным цветом

Chrome (версия 71, стабильная)

  • mov: неподдержка
  • Webm: фон с черным цветом

На этом фоне черный фон заставил меня думать, что в веб-видео нет альфа-канала.

Тогда я нашел сайт дисплей , как Chrome поддерживает WebM видео с альфа - каналом. Очень интересно то, что я могу изменить цвет фона веб-видео, затем я проверил HTML-код, они использовали CSS для управления цветом фона.Как отличный способ проверить, есть ли у webm видео альфа-канал!

Таким образом, я сделал эти шаги, чтобы подтвердить мое webm видео:

  1. откройте вебм видео с помощью Chrome
  2. введите инструмент разработчика
  3. добавить код CSS в тег видео

    стиль = "цвет фона: RGB (0,255,0)"

  4. если у webm-видео есть альфа-канал, видео-фон изменится на ЗЕЛЕНЫЙ, иначе ничего не произойдет. И, к счастью, у моего webm-видео есть альфа-канал!

Спасибо, надеюсь, это поможет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .