Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 仅使用ffmpeg,是否可以使用源GIF图像并输出设定长度的视频>;一个循环通过输入GIF?_Loops_Video_Ffmpeg_Gif_Pandastream - Fatal编程技术网

Loops 仅使用ffmpeg,是否可以使用源GIF图像并输出设定长度的视频>;一个循环通过输入GIF?

Loops 仅使用ffmpeg,是否可以使用源GIF图像并输出设定长度的视频>;一个循环通过输入GIF?,loops,video,ffmpeg,gif,pandastream,Loops,Video,Ffmpeg,Gif,Pandastream,假设我有一个8帧的动画GIF,2秒长。我想建立一个视频文件(编解码器在这一点上并不重要),是30秒长的,由源GIF重复一遍 是否可以仅使用ffmpeg?使用convert或其他一些预处理实用程序的答案不算数[原因是我想在没有该实用程序的PandaStream上使用它]。我们还假设shell脚本也是不可能的,尽管它可以是多个ffmpeg命令 我尝试过但不起作用的事情(虽然可能是我做错了,但我对ffmpeg不太熟悉): 使用中的-loop\u输入,-loop\u输出选项。使用ffmpeg 1.2和

假设我有一个8帧的动画GIF,2秒长。我想建立一个视频文件(编解码器在这一点上并不重要),是30秒长的,由源GIF重复一遍

是否可以仅使用
ffmpeg
?使用
convert
或其他一些预处理实用程序的答案不算数[原因是我想在没有该实用程序的PandaStream上使用它]。我们还假设shell脚本也是不可能的,尽管它可以是多个ffmpeg命令


我尝试过但不起作用的事情(虽然可能是我做错了,但我对ffmpeg不太熟悉):

  • 使用中的
    -loop\u输入
    -loop\u输出
    选项。使用ffmpeg 1.2和2.0,我得到一个
    无法识别的选项“loop|[input | output]”
    错误消息。我可能用错了,因为这个错误是关于没有识别这个选项,尽管文档说它不推荐使用

  • -循环
    选项。似乎对GIF->Video没有任何作用。我认为这个标志和上面的标志与生成动画GIF作为输出有关

  • 康卡特。做一些类似于:

    ffmpeg-i“concat:image.gif | image.gif | image1.gif | image2.gif | image3.gif | image4.gif”image-long.gif

    结果是一个16帧的gif(因此两个gif连接在一起),这是一个进步,尽管输出gif的质量要低得多


  • 我在这里有点不知所措(我已经尝试了上述概念的许多其他排列),我现在正处于“用棍子戳它”的时刻,希望有人已经这样做了

    可能吗?对

    看,我们可以将gif和转码转换为mpeg流(您可以将第一个复制两次):

    然后将它们连接起来,以gif格式输出

    ffmpeg -i "concat:image1.ts|image2.ts|image3.ts" -pix_fmt rgb24 output.gif
    
    从mp4或类似的开始,似乎可以得到更好的结果;将第一步替换为

    ffmpeg -i image.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts image1.ts
    
    对其他副本重复上述步骤

    我创建了同一文件的多个副本,因为如果我多次尝试
    concat:
    同一文件(
    concat:image1.ts | image1.ts | image1.ts
    ),它就无法工作


    享受一下

    多么好玩的事-1表示接受答案,无任何评论。这就是为什么我不再发布堆栈溢出。但是GIF的质量非常好pixelated@AjayShrestha尝试在
    -f mpegts
    之前添加
    -q:v1
    ,以提高输出质量
    ffmpeg -i image.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts image1.ts