FFMPEG图像级联基于PNG文件中的颜色给出不同的结果

克雷格

我正在使用以下代码来获取多个持续时间不同的PNG,并将其覆盖在另一个视频上。

ffmpeg  -safe -0 -f concat -i  overlap-png.txt 
-i mainvideo.MOV -filter_complex "[1]scale=1920:-1[1v];[0:v]fps=30[0v];[1v][0v]overlay=0:0"  
-c:v libx264 -profile:v baseline -pix_fmt yuv420p 
-level 3.1 -y  finishedvideo.mp4

但是,我发现了一些非常奇怪的东西。.txt文件中引用的PNG文件基本上都是透明的,但底部的条形图大约为300像素左右。如果该栏为深灰色,则一切正常。

如果该栏为红色,则许多图像被丢弃或帧可能被丢弃。

另外,我注意到脚本的运行方式会有所不同,具体取决于条形是红色还是深灰色。如果为红色,则表示逐行处理的次数更多;如果为深灰色,则表示在一行处理中发生的编码相同。

吉安

并非所有的PNG都具有相同的像素格式。我看到它在rgba和pal8(8位调色板)之间交替显示。当输入在中途更改其属性时,ffmpeg将重新初始化过滤器。发生这种情况时,所有缓冲的帧都将丢失。

从ffmpeg 4.2开始,有一个选项可以防止重新初始化。在这种情况下,必须手动协调像素格式。对于较旧的版本,可以使用相同的像素格式创建一个中间版本。

从ffmpeg 4.2开始,您可以运行

ffmpeg  -safe 0 -f concat -reinit_filter 0 -i overlap-png.txt 
-i mainvideo.MOV -filter_complex "[1]scale=1920:-1[1v];[0:v]null,format=rgba[0v];[1v][0v]overlay=0:0"  
-c:v libx264 -profile:v baseline -pix_fmt yuv420p 
-level 3.1 -y  finishedvideo.mp4

对于较旧的版本,请先创建一个中间文件,

ffmpeg -safe 0 -f concat -i overlap-png.txt -copyts -c:v png -pix_fmt rgba -vsync 0 overlap.mov

然后运行您的原始命令。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ImageMagick:使用不同颜色的图像给出意外结果的脚本

来自分类Dev

文件夹中的文件数,给出不同的结果

来自分类Dev

php / png / jpeg中的平均图像颜色

来自分类Dev

在Sobel过滤图像上的Otsu阈值给出不同的结果

来自分类Dev

为什么此代码(在Matlab的MEX文件中带有OpenMP)给出不同的结果?

来自分类Dev

CallLog.Calls.DURATION在不同的设备中给出不同的结果

来自分类Dev

Strtotime给出不同的结果

来自分类Dev

CGContextDrawImage未压缩的png与xcode中的原始png图像不同

来自分类Dev

为什么mod在表达式中给出的结果与函数调用中给出的结果不同?

来自分类Dev

FFmpeg通过放置在不同文件夹中的图像制作视频

来自分类Dev

为什么0010在Java中的数组中给出不同的结果

来自分类Dev

在Matlab中以不同的颜色显示图像中的不同值

来自分类Dev

Fabric.js中的PNG图像颜色不变

来自分类Dev

在Android中更改多个像素的图像PNG的颜色?

来自分类Dev

如何在winjs中设置png图像颜色

来自分类Dev

JAVA和Delphi中的数学函数给出不同的结果

来自分类Dev

为什么相同的代码在jsfiddle中给出不同的结果

来自分类Dev

OpenCV MergeMertens在Python Vs中给出不同的结果。C ++

来自分类Dev

使用'regexp'的相同查询在mysql中给出不同的结果

来自分类Dev

哈希引用中的Perl反引号给出不同的结果

来自分类Dev

在Windows中split.EOL给出不同的结果

来自分类Dev

AIC()和model $ aic在mgcv :: gam()中给出不同的结果

来自分类Dev

为什么相同的代码在jsfiddle中给出不同的结果

来自分类Dev

为什么相同的代码在jsfiddl中给出不同的结果?

来自分类Dev

Unix时间戳在PHP中给出了不同的结果

来自分类Dev

JAVA和Delphi中的数学函数给出不同的结果

来自分类Dev

使用'regexp'的相同查询在mysql中给出不同的结果

来自分类Dev

哈希引用中的Perl反引号给出不同的结果

来自分类Dev

sqldf 在控制台和代码中给出不同的结果

Related 相关文章

  1. 1

    ImageMagick:使用不同颜色的图像给出意外结果的脚本

  2. 2

    文件夹中的文件数,给出不同的结果

  3. 3

    php / png / jpeg中的平均图像颜色

  4. 4

    在Sobel过滤图像上的Otsu阈值给出不同的结果

  5. 5

    为什么此代码(在Matlab的MEX文件中带有OpenMP)给出不同的结果?

  6. 6

    CallLog.Calls.DURATION在不同的设备中给出不同的结果

  7. 7

    Strtotime给出不同的结果

  8. 8

    CGContextDrawImage未压缩的png与xcode中的原始png图像不同

  9. 9

    为什么mod在表达式中给出的结果与函数调用中给出的结果不同?

  10. 10

    FFmpeg通过放置在不同文件夹中的图像制作视频

  11. 11

    为什么0010在Java中的数组中给出不同的结果

  12. 12

    在Matlab中以不同的颜色显示图像中的不同值

  13. 13

    Fabric.js中的PNG图像颜色不变

  14. 14

    在Android中更改多个像素的图像PNG的颜色?

  15. 15

    如何在winjs中设置png图像颜色

  16. 16

    JAVA和Delphi中的数学函数给出不同的结果

  17. 17

    为什么相同的代码在jsfiddle中给出不同的结果

  18. 18

    OpenCV MergeMertens在Python Vs中给出不同的结果。C ++

  19. 19

    使用'regexp'的相同查询在mysql中给出不同的结果

  20. 20

    哈希引用中的Perl反引号给出不同的结果

  21. 21

    在Windows中split.EOL给出不同的结果

  22. 22

    AIC()和model $ aic在mgcv :: gam()中给出不同的结果

  23. 23

    为什么相同的代码在jsfiddle中给出不同的结果

  24. 24

    为什么相同的代码在jsfiddl中给出不同的结果?

  25. 25

    Unix时间戳在PHP中给出了不同的结果

  26. 26

    JAVA和Delphi中的数学函数给出不同的结果

  27. 27

    使用'regexp'的相同查询在mysql中给出不同的结果

  28. 28

    哈希引用中的Perl反引号给出不同的结果

  29. 29

    sqldf 在控制台和代码中给出不同的结果

热门标签

归档