Saya memiliki video webm transparan yang saya hasilkan menggunakan versi yang sedikit dimodifikasi electron-recorder
yang perlu saya overlay pada video MP4 dari smartphone. Saya sudah mencoba menggunakan overlay
filter tetapi selalu menempatkan latar belakang hitam pada hamparan alih-alih transparan. Saya yakin hamparan memiliki latar belakang transparan. Saya bisa memainkannya di halaman web dan latar belakang terlihat jelas.
Perintah apa yang saya perlukan agar ini berfungsi?
Ini adalah perintah yang saya gunakan untuk menghasilkan webm
dari PNG transparan (diekstraksi dan dimodifikasi electron-recorder
untuk pengujian saya):cat *.png | ffmpeg -y -f image2pipe -r 30 -i - -c:v libvpx -pix_fmt yuva420p -metadata:s:v:0 alpha_mode="1" output.webm
Ini adalah output dari ffprobe overlay.webm
:
ffprobe version 3.0.2 Copyright (c) 2007-2016 the FFmpeg developers
built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.0.2 --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-libxvid --enable-libfreetype --enable-libvorbis --enable-libvpx --enable-libfaac --enable-libass --enable-ffplay --enable-libfdk-aac --enable-libopus --enable-libx265 --disable-lzma --enable-nonfree --enable-vda
libavutil 55. 17.103 / 55. 17.103
libavcodec 57. 24.102 / 57. 24.102
libavformat 57. 25.100 / 57. 25.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 31.100 / 6. 31.100
libavresample 3. 0. 0 / 3. 0. 0
libswscale 4. 0.100 / 4. 0.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100
Input #0, matroska,webm, from 'overlay.webm':
Metadata:
encoder : Lavf57.25.100
Duration: 00:00:01.77, start: 0.000000, bitrate: 152 kb/s
Stream #0:0: Video: vp8, yuv420p, 720x720, SAR 1:1 DAR 1:1, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)
Metadata:
alpha_mode : 1
ffplay in.webm -vf alphaextract
. Jika Anda melihat output putih penuh atau ada kesalahan, maka tidak ada transparansi.ffprobe in.webm
ke Q.Jawaban:
Sampai saat ini, FFmpeg tidak dapat mendekodekan bidang alpha dalam aliran VP8 / 9 dengan alpha. Masih tidak bisa.
Tetapi jika Anda memiliki build terbaru (> 16 Juli) FFmpeg dengan
libvpx
kompilasi, maka Anda dapat menggunakansumber
Jika Anda ingin melakukan ini sekarang, Anda kemungkinan akan membutuhkan jawaban yang diterima dengan sedikit modifikasi
-vp9
padalibvpx
:sumber