gpt4 book ai didi

FFMPEG:编码解码器 'rgb24' 的像素格式不兼容 'gif' ,自动选择格式 'rgb8'

转载 作者:行者123 更新时间:2023-12-03 17:16:22 24 4
gpt4 key购买 nike

我使用 ffmpeg 以 24 位颜色深度记录 xvfb 桌面并将其保存为 gif 格式(然后我将其通过管道传输到 AWS,因此您可以在命令末尾用 文件名.gif 替换“ - ”符号,它不影响这个问题):

ffmpeg -f x11grab -video_size 800x600 -r 30 -i :99.0 -f gif -pix_fmt rgb24 -t 5 -

但是,我总是收到警告:

Incompatible pixel format 'rgb24' for codec 'gif', auto-selecting format 'rgb8'



这会导致不正确的色彩再现。我在 Windows 和 Ubuntu Docker 容器上都进行了尝试,包括预编译和源代码、最后一次提交的存储库,但没有运气。我还在其他人的日志中看到他们使用的 - -pix_fmt rgb24 bgr24 ,它工作得很好。

所以问题是:为了将 rgb24 与 gif 编码器一起使用,我需要安装或配置什么吗?或者也许有一种解决方法,比如先将其转换为另一种格式?

这是我的输出的一部分:
ffmpeg version git-2017-08-18-f386dd7 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609
configuration: --enable-gpl --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-version3 --enable-libxcb
libavutil 55. 74.100 / 55. 74.100
libavcodec 57.102.100 / 57.102.100
libavformat 57. 76.100 / 57. 76.100
libavdevice 57. 7.100 / 57. 7.100
libavfilter 6. 99.100 / 6. 99.100
libswscale 4. 7.102 / 4. 7.102
libswresample 2. 8.100 / 2. 8.100
libpostproc 54. 6.100 / 54. 6.100


Input #0, x11grab, from ':99.0':
Duration: N/A, start: 1503077459.413864, bitrate: N/A
Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1024x768, 30 fps, 1000k tbr, 1000k tbn, 1000k tbc
Stream mapping:
Stream #0:0 -> #0:0 (rawvideo (native) -> gif (native))
Press [q] to stop, [?] for help
Incompatible pixel format 'bgr24' for codec 'gif', auto-selecting format 'rgb8'


Output #0, gif, to 'pipe:':
Metadata:
encoder : Lavf57.76.100
Stream #0:0: Video: gif, rgb8, 1024x768, q=2-31, 200 kb/s, 30 fps, 100 tbn, 30 tbc
Metadata:
encoder : Lavc57.102.100 gif

PS:我发现的唯一解决方法是将输入视频拆分为 jpeg 并将它们通过管道传输到 ImageMagick,然后将 jpeg 连接到 gif。这是一个极其缓慢的过程,并且渲染时间增加了 20 倍。

最佳答案

我的一个解决方案是安装 ffmpeg imagemagick (在 Mac 上):

brew install ffmpeg
brew install imagemagick

然后 cd所在的目录.mov 文件存在并运行以下命令。
mkdir output
ffmpeg -i myvideo.mov -vf scale=1024:-1 -r 10 output/ffout%3d.png
convert -delay 8 -loop 0 output/ffout*.png output/animation.gif

第一个创建一个 output目录。第二个命令创建一个 .png 每个帧的文件(由 -r 标志指定,表示 10 fps)。第三个命令使用 imagemagick 从先前创建的图像文件创建一个 gif 文件,延迟为 8ms。 .最后的 gif 是 output/animation.gif文件。

关于FFMPEG:编码解码器 'rgb24' 的像素格式不兼容 'gif' ,自动选择格式 'rgb8',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45762670/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com