FFMPEG:结合“从图像创建视频”+ 缩放到 x + 添加音频 + 覆盖徽标
Posted
技术标签:
【中文标题】FFMPEG:结合“从图像创建视频”+ 缩放到 x + 添加音频 + 覆盖徽标【英文标题】:FFMPEG: Combine "Create video from images" + scale to x + add audio + overlay logo 【发布时间】:2020-01-07 17:02:40 【问题描述】:我正在开发一个网络摄像头项目。它用于生成日落/日落的延时视频。
我正在使用 raspberrypi 通过 gphoto2 + DSLR 生成它们。
在一天结束时,图像应该会变成带有音频和叠加徽标的视频。 它应该缩放到 1920 像素。 我得到了一个很好的解决方案,它奏效了。
按比例制作延时视频:
ffmpeg -y -framerate 25 -start_number 0000001 -i /var/www/html/webcam/2020-01-05_bilder/%7d.jpg -vf scale=1920:-1 -pix_fmt yuv420p /var/www/html/webcam/2020-01-05-tag-output-1920.mp4
取(1)的输出并添加一个overlay-logo,添加音频
ffmpeg -y -i '/var/www/html/webcam/2020-01-05-tag-output-1920.mp4'
-i '/var/www/html/webcam-scripts/graphics/logo.png'
-i '/var/www/html/webcam-scripts/sounds/chill_time_5.mp3'
-shortest -filter_complex '[1][0]scale2ref=h=ow/mdar:w=iw/6[#A logo][liebfrauen]; [#A logo]format=argb,colorchannelmixer=aa=0.95[#B logo transparent]; [liebfrauen][#B logo transparent] overlay=(main_w-w)-(main_w*0.05):(main_h-h)-(main_h*0.01)'
-c:v libx264 -crf 18 -preset slow -pix_fmt yuv420p -c:a aac -strict -2
'/var/www/html/webcam/2020-01-05-tag-1920.mp4
我尝试将这两个操作结合起来,但出现错误:
ffmpeg -y -framerate 25 -start_number 0000001 -i '/var/www/html/webcam/2020-01-05_bilder/%7d.jpg' -vf scale=1920:-1 -pix_fmt yuv420p -i '/var/www/html/webcam-scripts/graphics/logo.png' -i '/var/www/html/webcam-scripts/sounds/chill_time_5.mp3' -shortest -filter_complex '[1][0]scale2ref=h=ow/mdar:w=iw/6[#A logo][liebfrauen]; [#A logo]format=argb,colorchannelmixer=aa=0.95[#B logo transparent]; [liebfrauen][#B logo transparent] overlay=(main_w-w)-(main_w*0.05):(main_h-h)-(main_h*0.01)' -c:v libx264 -crf 18 -preset slow -pix_fmt yuv420p -c:a aac -strict -2 '/var/www/html/webcam/2020-01-05-tag-1920.mp4'
错误:Filtergraph 'scale=720:-1' 是通过 -vf/-af/-filter 选项为输出流 0:0 指定的,该输出流是从复杂的 filtergraph 馈送的。 -vf/-af/-filter 和 -filter_complex 不能同时用于同一个流。
难道不能结合这些输入并对其进行扩展吗?或者……我的误会在哪里?
【问题讨论】:
【参考方案1】:不要混用 -vf
和 -filter_complex
。在一个filtergraph 中完成所有过滤。
ffmpeg -y -framerate 25 -i '/var/www/html/webcam/2020-01-05_bilder/%7d.jpg' -i '/var/www/html/webcam-scripts/graphics/logo.png' -i '/var/www/html/webcam-scripts/sounds/chill_time_5.mp3' -filter_complex '[0]scale=1920:-2[v0];[1][v0]scale2ref=h=ow/mdar:w=iw/6[#A logo][liebfrauen]; [#A logo]format=argb,colorchannelmixer=aa=0.95[#B logo transparent]; [liebfrauen][#B logo transparent] overlay=(main_w-w)-(main_w*0.05):(main_h-h)-(main_h*0.01),format=yuv420p' -c:v libx264 -crf 18 -preset slow -c:a aac -shortest '/var/www/html/webcam/2020-01-05-tag-1920.mp4'
不需要-strict -2
。它对现代 ffmpeg
没有任何作用。
我将-pix_fmt yuv420p
替换为format=yuv420p
,这样它更有条理。
不需要-start_number 0000001
,因为1
是默认值。
【讨论】:
感谢伊洛根!现在我明白我的错误了!它工作得很好!伟大的。感谢您的帮助并在我的 raspi an co2 上节省 cpu 时间。以上是关于FFMPEG:结合“从图像创建视频”+ 缩放到 x + 添加音频 + 覆盖徽标的主要内容,如果未能解决你的问题,请参考以下文章