ffmpeg 图片背景透明
时间: 2023-12-08 11:39:18 浏览: 449
要使用ffmpeg将图片序列转换为透明背景的视频,可以使用以下命令:
```shell
ffmpeg -i %d.png -vcodec qtrle movie_with_alpha.mov
```
其中,`%d.png`是指图片序列的文件名格式,`-vcodec qtrle`表示使用Quicktime Animation编解码器,`movie_with_alpha.mov`是输出视频的文件名。如果需要使用其他支持透明背景的编解码器,可以将`qtrle`替换为`ffvhuff`或`huffyuv`。
需要注意的是,大多数视频格式不支持透明度,只有少数格式支持。因此,在使用ffmpeg将图片序列转换为透明背景的视频时,需要选择支持透明度的视频格式。
相关问题
ffmpeg 透明png生成透明背景视频
使用 ffmpeg 可以方便地将透明PNG图片序列合成为透明背景视频。下面是一个简单的命令示例:
```
ffmpeg -framerate 30 -i %04d.png -c:v libx264 -preset ultrafast -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2,format=yuv420p" output.mp4
```
其中,`-framerate` 表示帧率,`-i` 表示输入文件名的通配符,`-c:v` 表示视频编码器,`-preset` 表示编码速度,`-pix_fmt` 表示像素格式,`-vf` 表示视频过滤器,`output.mp4` 表示输出文件名。
需要注意的是,输入的 PNG 序列文件名需要按照一定的规则进行命名,如 `%04d.png` 表示文件名为 4 位数字,例如 `0001.png`、`0002.png` 等等。此外,由于 PNG 图片可能包含 alpha 通道,需要使用 `yuv420p` 像素格式来支持透明度。
如果想要生成透明背景的视频,还需要在命令中添加 `-movflags +faststart -fflags +genpts -bsf:v h264_mp4toannexb` 参数,如下所示:
```
ffmpeg -framerate 30 -i %04d.png -c:v libx264 -preset ultrafast -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2,format=yuv420p" -movflags +faststart -fflags +genpts -bsf:v h264_mp4toannexb output.mp4
```
这样可以确保生成的视频在播放时能够正确地显示透明背景。
ffmpeg 透明图片生成长图滚动视频 叠加到另一个视频中 透明背景
要生成透明图片并将其转换为长图滚动视频,可以使用以下命令:
```
ffmpeg -loop 1 -i transparent_image.png -vf "scale=1920:1080,setsar=1,fps=30,format=rgba" -t 30 -pix_fmt yuva420p transparent_video.mov
```
上面的命令中,`transparent_image.png`指定了透明图片的文件路径,`-vf`选项指定了添加一些虚拟滤镜,`-t`指定了视频的长度,`-pix_fmt`选项指定了像素格式为`yuva420p`,该格式支持透明度通道。
要将透明视频叠加到另一个视频中,可以使用以下命令:
```
ffmpeg -i main_video.mp4 -i transparent_video.mov -filter_complex "[0:v][1:v]overlay=0:0" output.mp4
```
上面的命令中,`main_video.mp4`指定了主视频的文件路径,`transparent_video.mov`指定了透明视频的文件路径。`-filter_complex`选项指定了复杂滤镜图,其中`[0:v]`表示主视频的视频流,`[1:v]`表示透明视频的视频流,`overlay=0:0`表示将透明视频叠加在主视频的左上角。最终生成的视频文件名为`output.mp4`。
阅读全文