2016-01-18 7 views
2

Я пытаюсь преобразовать мов с альфа-прозрачностью WebM с альфа-прозрачностью, как видно here. Я выполнил следующие шаги: here безрезультатно.Преобразовать мы с Альфа в VP9 WebM с альфа Использованием FFmpeg

От this answer я был в состоянии удалить все черное в видео, что делает его прозрачным, но это не то, что мне нужно, как я уже имеют прозрачный мов и хотел бы преобразовать его в прозрачный WebM формат ,

ffmpeg -i input.mp4 -c:v libvpx -vf "colorkey=0x000000:0.1:0.1,format=yuva420p" out.webm 

Это ffprobe выход видео, которое я хотел бы преобразовать в WebM с прозрачностью.

built with Apple LLVM version 7.0.2 (clang-700.1.81) 
    configuration: --prefix=/usr/local/Cellar/ffmpeg/2.8.4 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libvo-aacenc --enable-libxvid --enable-libfreetype --enable-libtheora --enable-libvorbis --enable-libvpx --enable-librtmp --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libass --enable-ffplay --enable-libspeex --enable-libschroedinger --enable-libfdk-aac --enable-libopus --enable-frei0r --enable-libopenjpeg --disable-decoder=jpeg2000 --extra-cflags=-I/usr/local/Cellar/openjpeg/1.5.2_1/include/openjpeg-1.5 --enable-nonfree --enable-vda 
    libavutil  54. 31.100/54. 31.100 
    libavcodec  56. 60.100/56. 60.100 
    libavformat 56. 40.101/56. 40.101 
    libavdevice 56. 4.100/56. 4.100 
    libavfilter  5. 40.101/5. 40.101 
    libavresample 2. 1. 0/2. 1. 0 
    libswscale  3. 1.101/3. 1.101 
    libswresample 1. 2.101/1. 2.101 
    libpostproc 53. 3.100/53. 3.100 
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mov': 
    Metadata: 
    major_brand  : qt 
    minor_version : 0 
    compatible_brands: qt 
    creation_time : 2016-01-17 16:04:07 
    encoder   : Mac OS X v? (AVF 1046.9.1, CM 1731.15.20, x86_64) 
    encoder-eng  : Mac OS X v? (AVF 1046.9.1, CM 1731.15.20, x86_64) 
    Duration: 00:00:06.63, start: 0.000000, bitrate: 63966 kb/s 
    Stream #0:0(eng): Video: prores (ap4h/0x68347061), yuva444p10le(bt470bg/smpte240m/bt709), 1920x1080, 63963 kb/s, 25.03 fps, 25 tbr, 600 tbn, 600 tbc (default) 
    Metadata: 
     creation_time : 2016-01-17 16:04:07 
     handler_name : Core Media Data Handler 
     encoder   : Apple ProRes 4444 

Я также пробовал следующую команду, которая тоже не работала для меня.

ffmpeg -y -i input.mov -c:v libvpx-vp9 -b:v 2000k -pass 1 -an -f webm output.webm 

Я использую версию 2.8.4 ffmpeg на Mac, установленную с варевом. 2.8.5 - последняя версия.

ответ

5

Попробуйте

ffmpeg -i input.mov -c:v libvpx -pix_fmt yuva420p out.webm 
+0

Как я могу установить битрейт для этого? – Enijar

+1

Добавьте '-b: v 2000k' для средней скорости 2mbps. – Mulvya

2

WebM-alpha предназначен только для VP8. Сейчас это не работает для VP9.

+1

еще одна ссылка https://github.com/fnordware/AdobeWebM/issues/17 – user2683246

6

С 2016-07-13, можно кодировать VP9/WebM видео с альфа-каналом (VP9a). Однако команда, которую вы используете здесь, создаст видеоролик VP8a. Предполагая, что вы получили копию ffmpeg, скомпилированную после этой даты, все, что вам нужно, это изменить libvpx на libvpx-vp9. Вам не требуется преобразование yuva420p (по умолчанию выбрано).