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

标签 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!

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

我通过查看它们的尺寸等检查了图像,并且在此范围内的所有图像看起来都相同(我检查了所有带有 _0009?.png 的图像)。

知道为什么会这样吗?

这是有问题的文件(中间)和之前/之后的文件:

96

97 - the 'error picture'

98

最佳答案

您的命令将使用第一个输入覆盖所有输入文件。这是使用 -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。
  • 关于来自pngs的ffmpeg ... PNGS子集出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48995558/

    相关文章:

    ios - 如何使用 resizeAspectFill 在 watchOS 上播放视频?

    cocoa - 在 Cocoa/OSX 的屏幕保护程序中播放 QTMovie

    ffmpeg 初始化输出流时出错 0 :0 -- Error while opening encoder for output stream

    node.js - 将 Mp4 文件转换为纵向视频

    Windows FFmpeg 将 imges 转换为具有正确帧率的 gif

    android - 如何在 C 中编写 ffmpeg 命令 shell

    java - 使用 Java 为多个图像制作动画

    iphone - MPMovieplayerController 停止后保持下载 (iphone)

    python - 使用 Google Colab 和 FFmpeg 对同一文件夹中的多个文件进行编码

    python - 从输出 txt matplotlib 制作电影