I'll break down both of these FFmpeg commands for you, explaining their components and the differences between them. ffmpeg -i input.mov -c:v libvpx -pix_fmt yuva420p -b:v 1M -vf "scale=512:512" -auto-alt-ref 0 output.webm ffmpeg : This is the command line tool you are using for video processing. -i input.mov : Specifies the input file, which in this case is input.mov . -c:v libvpx : Sets the video codec to VP8 (used for WebM files). -pix_fmt yuva420p : Specifies the pixel format. yuva420p means YUV color space with an alpha channel, allowing for transparency. -b:v 1M : Sets the bitrate of the video to 1 Megabit per second, controlling video quality and file size. -vf "scale=512:512" : Applies a video filter to scale the video to a resolution of 512x512 pixels. -auto-alt-ref 0 : Disables a specific VP8 encoding feature ( auto_alt_ref ) that is not compatible with videos that have an alpha channel. output.webm : The name of the output file, which will be saved in WebM format. This command is used to convert a video to WebM format with the VP8 codec, a specific bitrate, and a scaled resolution, while preserving an existing alpha channel. Command 2 ffmpeg -i input.mov -vf "colorkey=0x000000:0.1:0.1,format=yuva420p,scale=512:512" -c:v libvpx-vp9 -b:v 1M output.webm Explanation: ffmpeg : The command line tool for video processing. -i input.mov : Specifies the input file, which you would replace with the name of your video file. -vf "colorkey=0x000000:0.1:0.1,format=yuva420p,scale=512:512" : This is a chain of video filters: colorkey=0x000000:0.1:0.1 : This filter is used to make a specific color (black, in this case) transparent. The values 0.1:0.1 are for similarity and blending settings, which determine how strict the color matching should be. format=yuva420p : Changes the pixel format to include an alpha channel. scale=512:512 : Scales the video to a 512x512 resolution. -c:v libvpx-vp9 : Sets the video codec to VP9, an updated version of VP8, which is better for handling alpha channels. -b:v 1M : Sets the bitrate to 1 Megabit per second. output.webm : The output file in WebM format. This command not only converts a video to WebM format with the VP9 codec and specific settings but also applies color keying to introduce transparency based on color (black in this case). Differences: Codec : Command 1 uses VP8 ( libvpx ), while Command 2 uses VP9 ( libvpx-vp9 ). VP9 is generally more efficient and better at handling alpha channels than VP8. Color Keying : Command 2 includes a colorkey filter to create an alpha channel based on a specific color (black), whereas Command 1 assumes the input video already has an alpha channel. Usage : Command 1 is used when you already have a video with an alpha channel and want to convert it to WebM format. Command 2 is used when you need to create an alpha channel based on a specific color and convert the video to WebM. To modify the second command to use the VP8 codec instead of VP9 while keeping the rest of the functionality intact, you can simply replace the codec specification from libvpx-vp9 to libvpx . Here’s how the updated command would look: ffmpeg -i input.mov -vf "colorkey=0x000000:0.1:0.1,format=yuva420p,scale=512:512" -c:v libvpx -b:v 1M output.webm in this command: -i input.mov : Specifies the input file. -vf "colorkey=0x000000:0.1:0.1,format=yuva420p,scale=512:512" : This is a chain of video filters where colorkey=0x000000:0.1:0.1 makes the black color transparent, format=yuva420p changes the pixel format to include an alpha channel, and scale=512:512 resizes the video. -c:v libvpx : Sets the video codec to VP8. While VP8 supports alpha channels, it's not as efficient or capable as VP9 in handling them. -b:v 1M : Sets the bitrate to 1Mbit/sec. output.webm : Specifies the name of the output file in WebM format. Remember, VP8 is less efficient than VP9, especially for videos with alpha channels. If you encounter any issues with the alpha channel in VP8, consider using v8 in roll20 because r20 is better suited for v8 webms Link to webms