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

问题描述 投票:5回答:1

[我使用ffmpeg录制具有24位色深的xvfb桌面并将其保存为gif格式(然后将其通过管道传输到AWS,因此您可以将<filename.gif在命令末尾,它不会影响此问题):ffmpeg -f x11grab -video_size 800x600 -r 30 -i :99.0 -f gif -pix_fmt rgb24 -t 5 -

但是,我总是收到警告:

编解码器'gif'的像素格式'rgb24'不兼容,自动选择格式“ 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,然后将magegs连接为gif。这是极其缓慢的过程,并且将渲染时间增加了20倍。

我使用ffmpeg录制具有24位色深的xvfb桌面并将其保存为gif格式(然后将其通过管道传输到AWS,因此您可以在命令末尾用filename.gif替换'-'符号, ...

ffmpeg rgb gif recording video-recording
1个回答
0
投票
对我来说,一个解决方案是安装

ffmpeg

© www.soinside.com 2019 - 2024. All rights reserved.