如何解决如何将 7MB GIF 上传到 Twitter 的 API
我有一堆 JPEG 帧,我使用 ImageMagick 将它们拼接成 GIF。最终产品具有以下类型:
GIF image data,version 89a,1280 x 720
这给出了动画 GIF 的效果。我的文件大小在 6-8MB 之间。
如果我手动将此媒体上传到 Twitter,效果很好。当我尝试以下操作时,使用 TwitterOAuth
PHP 库发现 here:
$media = $twitterConnection->upload('media/upload',['media' => 'my_file.gif');
我收到以下错误:
Image file size must be <= 5242880 bytes
我也尝试过使用 Twitter's recommended Python large video library 上传文件,但失败了:
INIT
Media ID: 1362940800456351744
APPEND
4194304 of 7685061 bytes uploaded
APPEND
7685061 of 7685061 bytes uploaded
Upload chunks complete.
FINALIZE
{'media_id': 1362940800456351744,'media_id_string': '1362940800456351744','media_key': '7_1362940800456351744','size': 7685061,'expires_after_secs': 86400,'processing_info': {'state': 'pending','check_after_secs': 1}}
Media processing status is pending
Checking after 1 seconds
STATUS
Media processing status is Failed
我愿意使用任何平台/实用程序将我的视频文件上传到 Twitter。我最好的选择是:
1:修正我的文件类型以符合 Twitter 的要求。它不应该是GIF吗?我应该将静态拍摄的 JPEG 文件转换为另一种格式吗?
2:Twitter 是否有允许上传这些尺寸的 GIF 的 API?同样,我可以通过常规 Twitter Web UI 客户端上传这些文件,但我无法通过他们的 API 自动上传。
如何使用他们的 API 将我的 GIF 上传到 Twitter?
解决方法
gif 文件不能有 5MB 的限制。下面引用了您的文档。
图片规格和建议 图像文件必须满足以下所有条件:
支持的图片媒体类型:JPG、PNG、GIF、WEBP 图像大小
回答你的另外两个问题。
-
是的,尝试压缩文件。
-
任何 API 脚本都不允许。我不确定 twitter 是否仍然从图像托管中渲染文件,比如你习惯的 twitpic,你可以试试。
尝试使用调色板减少颜色数量
ffmpeg -i yourGif.gif -lavfi "palettegen=max_colors=255:stats_mode=diff"palette.png
ffmpeg -i yourgif.gif -i Palette.png -lavfi "paletteuse=dither" -c:v gif -pix_fmt yuv420p PaletteGif.gif
您可以减少 max_colors 选项以减少空间但降低质量
更改抖动值以查看哪个结果更好
否则唯一的解决办法就是缩小你的gif
,再次尝试对 gif 进行编码,使用 ffmpeg 使用本指南使用 -f gif 对一系列图像进行编码 https://en.m.wikibooks.org/wiki/FFMPEG_An_Intermediate_Guide/image_sequence
使用调色板,因为 GIF 有 256 种颜色作为 jpeg 并使用 -pixel_format yuv420p 否则某些用户会遇到问题,如果 jpeg 相同,保持最后缩放可能会节省一些空间。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。