我正在制作一段视频
到目前为止,我得到了这个,并且(几乎)正确地工作了:
ffmpeg -f lavfi -i "aevalsrc=0|0" -loop 1 -i turtle-2.jpg -c:v libx264 -t 5 -r 30 -s 1920x1080 -aspect 16:9 -pix_fmt yuv420p -filter:v drawtext="fontsize=130:fontfile=comic.ttf:text='hello world':x=(w-text_w)*.25:y=(h-text_h)*.75",fade=in:0:60,fade=out:90:60 -acodec aac turtle11.mp4
唯一的问题是,淡出似乎不会变成黑色,甚至这是一个150帧视频,我相信我是正确的跟随ffmpeg文件。
由此产生的视频如下:
http://video.blivenyc.com/vid-from-image/turtle11.mp4
有什么想法吗?
发布于 2017-06-13 18:46:20
嗯,我不知道为什么,但这是有效的,即使它似乎是等同的:
ffmpeg -f lavfi -i "aevalsrc=0|0" -loop 1 -i turtle-2.jpg -c:v libx264 -t 5 -r 30 -s 1920x1080 -aspect 16:9 -pix_fmt yuv420p -filter:v drawtext="fontsize=130:fontfile=comic.ttf:text='hello world':x=(w-text_w)*.25:y=(h-text_h)*.75",fade=t=in:st=0:d=1,fade=t=out:st=4:d=1 -acodec aac turtle12.mp4
基本上,基于框架的语法:
fade=in:0:60,fade=out:90:60
获取以时间为基础的替换:
fade=t=in:st=0:d=1,fade=t=out:st=4:d=1
不知怎么起作用了。不知道这是为什么。
发布于 2017-06-13 19:14:58
淡出滤波器在其上运行的视频流不长150帧。输入和输出框架在这里是不同的。在完成所有筛选之后,使用-r
来设置输出速率。在这一阶段,ffmpeg将下降或重复帧以获得输出速率。
图像或图像序列的输入速率为25,除非另有明确设置。在你的命令中,因为没有覆盖,所以是25。因此,从帧90开始,从帧125 (5秒x25)开始逐渐淡出60帧。ffmpeg将复制每个输入秒的5帧,以使其达到30。
要获得所需的结果,请使用
ffmpeg -f lavfi -i "aevalsrc=0|0" -loop 1 -framerate 30 -i turtle-2.jpg -c:v libx264 -t 5 -s 1920x1080 -aspect 16:9 -pix_fmt yuv420p -filter:v drawtext="fontsize=130:fontfile=comic.ttf:text='hello world':x=(w-text_w)*.25:y=(h-text_h)*.75",fade=in:0:60,fade=out:90:60 -acodec aac turtle11.mp4
https://stackoverflow.com/questions/44529161
复制相似问题