使用 ffmpeg 将带有 Alpha 的 mov 转换为带有 Alpha 的 VP9 Webm
Convert mov with Alpha to VP9 Webm with Alpha Using ffmpeg
我正在尝试将具有 alpha 透明度的 mov 转换为具有 alpha 透明度的 webm,如图所示 here. I followed the steps explained here 为无有用
从 我能够删除视频中的所有黑色,从而使其透明,但这不是我需要的,因为我已经有一个透明的 mov 并想将其转换为透明 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
我在 Mac 上使用 ffmpeg 2.8.4 版,安装了 brew。 2.8.5 是最新版本。
WebM-alpha 仅为 VP8 定义。它现在对 VP9 根本不起作用。
尝试
ffmpeg -i input.mov -c:v libvpx -pix_fmt yuva420p out.webm
自 2016-07-13 起,可以使用 alpha 通道 (VP9a) 对 VP9/webm 视频进行编码。但是,您在此处使用的命令将创建一个 VP8a 视频。假设您获得了在该日期之后编译的 ffmpeg 的副本,您只需将 libvpx
更改为 libvpx-vp9
。您也不需要 yuva420p
转换(默认选择)。
所有其他解决方案都会导致视频质量不佳。请确保您根据自己的喜好定义比特率。我把我的从1M改成了2M,很满意
ffmpeg -i "Model 1 V1.mov" -f webm -c:v libvpx -b:v 2M -acodec libvorbis -auto-alt-ref 0 model1v3.webm -hide_banner
如果您使用的是 After Effects 或 Premiere Pro,还有这个 plugin,可以在 Adobe Media Encoder 中使用。
我正在尝试将具有 alpha 透明度的 mov 转换为具有 alpha 透明度的 webm,如图所示 here. I followed the steps explained here 为无有用
从
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
我在 Mac 上使用 ffmpeg 2.8.4 版,安装了 brew。 2.8.5 是最新版本。
WebM-alpha 仅为 VP8 定义。它现在对 VP9 根本不起作用。
尝试
ffmpeg -i input.mov -c:v libvpx -pix_fmt yuva420p out.webm
自 2016-07-13 起,可以使用 alpha 通道 (VP9a) 对 VP9/webm 视频进行编码。但是,您在此处使用的命令将创建一个 VP8a 视频。假设您获得了在该日期之后编译的 ffmpeg 的副本,您只需将 libvpx
更改为 libvpx-vp9
。您也不需要 yuva420p
转换(默认选择)。
所有其他解决方案都会导致视频质量不佳。请确保您根据自己的喜好定义比特率。我把我的从1M改成了2M,很满意
ffmpeg -i "Model 1 V1.mov" -f webm -c:v libvpx -b:v 2M -acodec libvorbis -auto-alt-ref 0 model1v3.webm -hide_banner
如果您使用的是 After Effects 或 Premiere Pro,还有这个 plugin,可以在 Adobe Media Encoder 中使用。