带有 yup420 输出问题的 MOBILE FFMPEG 过滤器复合体

Posted

技术标签:

【中文标题】带有 yup420 输出问题的 MOBILE FFMPEG 过滤器复合体【英文标题】:MOBILE FFMPEG filter complex with yup420 output issues 【发布时间】:2021-07-05 00:05:19 【问题描述】:

我正在使用 mobile-ffmpeg 使用复杂过滤器和格式 yuv420 通过图像创建视频,我遇到的问题是宽度不能像这样被 2(601*900) 整除。 某些视频创作会出现此错误,但很多视频都可以正常工作。 我的过滤器复合体正在缩放、旋转和覆盖输入图像。 这是ffmpeg命令:

ffmpeg -loop 1 -t 10 -i background.jpg -s 700x900 

-loop 1 -i img1.png -loop 1 -i img2.jpg 
-loop 1 -i img3.jpg

-filter_complex
[1]scale=eval=frame:w='72':h='72'[img1];
[2]scale=eval=frame:w='598':h='382',rotate=a=0*PI/180:c=black@0:oh='roth(0*PI/180)':ow='rotw(0*PI/180)':bilinear=1,fade=in:st=2:d=3:alpha=1[img2];
[3]scale=eval=frame:w='598':h='382',rotate=a=0*PI/180:c=black@0:oh='roth(0*PI/180)':ow='rotw(0*PI/180)':bilinear=1,fade=in:st=3:d=4:alpha=1[img3];
[0][img1]overlay=W-w-5:5:format=auto:shortest=1:format=auto[bg1];
[bg1][img2]overlay=44:500:shortest=1:format=auto[bg2];
[bg2][img3]overlay=44:22:shortest=1:format=auto,format=yuv420p" 

output.mp4

对其进行一些搜索,发现 -vf filter 可以调整宽度:高度,但限制不能与 filter-complex 一起使用...

我的错误日志:

 E/mobile-ffmpeg: [libx264 @ 0xbd8c8800] 
 E/mobile-ffmpeg: width not divisible by 2 (601x901)
 E/mobile-ffmpeg: Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height

【问题讨论】:

【参考方案1】:

在格式前添加一个比例。

scale=w=bitand(iw,65534):h=bitand(ih,65534),format=yuv420p

【讨论】:

我在 logcat:: Unable to find a suitable output format for 'scale=w=bitand(iw,65534):h=bitand(ih,65534),format=yuv420p' ,请您在我的命令中添加这个比例......在过滤器复合体中。请编辑给定的命令。谢谢 在命令中的 format=yuv420p 之前插入比例过滤器。 嗨,先生,我想要一些知识,我可以使用 gif 来开始命令,之前我使用 -loop 1 -t 10 -i background.jpg 现在想要替换为 -y -ignore_loop 0 - t 30 -i background.gif....我试过了,但它没有正确缩放或覆盖...图像输出 od -s 600, 700...

以上是关于带有 yup420 输出问题的 MOBILE FFMPEG 过滤器复合体的主要内容,如果未能解决你的问题,请参考以下文章

Win10 Mobile预览版10586.420开始推送

Win10 Mobile/PC预览版10586.420更新内容大全

Win10 PC桌面稳定版10586.420开始推送

我如何在yup中验证对象内部的对象?

react-hook-form yup 解析器,reactStrap 解决子组件错误的问题

如何正确使用带有 YUV_420_888 和 MediaCodec 的 ImageReader 将视频编码为 h264 格式?