FFMPEG无法循环叠加输入图像以进行动态图像叠加

时间:2017-09-15 05:26:44

标签: php laravel-5 ffmpeg

我正在尝试在images / logo.png(例如)中循环图像。

我正在使用php laravel创建动态图像并将其覆盖到images / logo.png中。

我的ffmpeg代码

ffmpeg -y -listen 1 -i rtmp://192.168.33.11:1935/live/mp4test -loop 1 -f image2 -i image/logo.png -filter_complex "[0:v]scale=1024:-1,setpts=PTS-STARTPTS[stream];[1:v]scale=120:-1,setpts=PTS-STARTPTS[logo] ; [stream][logo]overlay=W-w-10:H-h-10,format=yuv420p[out]" -map "[out]" -map 0:a:0 -hls_time 10 -hls_list_size 6 -start_number 1 stream.m3u8

如果我使用

生成动态图像,此代码可以正常工作

until test ; do convert -size 200x100 xc:White -gravity Center -weight 700 -pointsize 12 -annotate 0 "date" /usr/local/nginx/html/stream/test_stream/datex.png ; mv /usr/local/nginx/html/stream/test_stream/datex.png /usr/local/nginx/html/stream/test_stream/image/logo.png ; sleep 1 ; done

此脚本只生成带有当前时间戳的图像,并将其移动到images / as logo.png中。这个工作绝对没问题。

但是当我使用我的laravel应用程序生成一个文件时,将其移动到images / ffmpeg开始丢弃所有帧。

请建议我一个解决方案。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。问题在于图像的分辨率。当我尝试覆盖相同分辨率的图像时。我似乎工作正常。