来自pngs的ffmpeg ...错误的PNGS子集?

时间:2018-02-26 19:15:44

标签: ffmpeg movie

我有大约1200个png,我正在转换成电影。其中一些缺失:即_00003.png,_00005.png存在,但1,2和4不存在。

以下命令适用于其他数据集,但不适用于我当前的png集:

ffmpeg -i pngs/_*.png -y -vcodec mpeg4 -pix_fmt yuv420p -r 25 -filter:v 'setpts=1.2*PTS' p3SN.mp4

我收到此错误:

Output #61, image2, to 'pngs/_00096.png':
  Metadata:
    encoder         : Lavf57.83.100
    Stream #61:0: Video: png, rgba, 3240x2160 [SAR 3937:3937 DAR 3:2], q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc57.107.100 png
Output #62, image2, to 'pngs/_00097.png':
  Metadata:
    encoder         : Lavf57.83.100
    Stream #62:0: Video: png, rgba, 3240x2160 [SAR 3937:3937 DAR 3:2], q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc57.107.100 png
[png @ 0x7fae93170e00] ff_frame_thread_encoder_init failed
Error initializing output stream 63:0 -- Error while opening encoder for output stream #63:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!

at image _00097.png。如果我删除它,它会在稍后发生(105)。

我通过查看它们的尺寸等来检查图像,并且在这个范围内的所有图像看起来都一样(我检查了所有那些_0009?.png)。

知道为什么会这样吗?

这是违规文件(中间)和之前/之后的文件:

96

97 - the 'error picture'

98

1 个答案:

答案 0 :(得分:1)

您的命令将使用第一个输入覆盖所有输入文件。这是一个为什么在使用-y时要谨慎使用的一个示例,它会在不询问您的情况下自动覆盖文件。

您需要告诉ffmpeg使用glob pattern

ffmpeg -y -pattern_type glob -framerate 25/1.2 -i "pngs/_*.png" -vcodec mpeg4 -pix_fmt yuv420p -r 25 p3SN.mp4
  • 我认为glob模式选项在Windows上不起作用,但如果它具有与Linux cat命令相同的功能,则可以输出输出:cat *.png | ffmpeg -i - output.mp4
  • 如果需要,您可以使用-framerate-r代替setpts。
相关问题