ffmpeg - 使用 ffmpeg 将 mp4 转换为 gif 时降低 fps

标签 ffmpeg animated-gif frame-rate

我正在使用 ffmpeg 将高质量视频转换为 gif,大多数视频都是 60fps 及以上 720p ,但是当我使用下面的代码将视频转换为 gif 时,gif 输出的 fps 非常低,

#!/usr/bin/env
palette=/tmp/pallete.png
filter="fps=50,scale=480:-1:flags=lanczos"

ffmpeg -y  -i test.mov -vf $filter,palettegen=stats_mode=diff $palette
ffmpeg -y -i test.mov -i $palette -lavfi "$filter [x]; [x][1:v] paletteuse" test.gif

我注意到的另一个问题是 - 随着宽度的增加,例如 720而不是 480我的fps甚至更低。

这是输出日志示例,输出 fps 低于分配的 50fps
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/201631203815.mp4':
Metadata:
 major_brand     : isom
 minor_version   : 512
 compatible_brands: isomiso2avc1mp41
 encoder         : Lavf56.36.100
Duration: 00:00:05.48, start: 0.016000, bitrate: 1579 kb/s

Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1334x1334, 1576 kb/s, 60.18 fps, 60 tbr, 1000k tbn, 50 tbc (default)
Metadata:
  handler_name    : VideoHandler

Input #1, png_pipe, from '/tmp/pallete.png':
   Duration: N/A, bitrate: N/A
Stream #1:0: Video: png, rgba(pc), 16x16 [SAR 1:1 DAR 1:1], 25 tbr, 25 tbn, 25 tbc

Output #0, gif, to '/tmp/201631203815.gif':
Metadata:
  major_brand     : isom
  minor_version   : 512
  compatible_brands: isomiso2avc1mp41
  encoder         : Lavf56.40.101
Stream #0:0: Video: gif, pal8, 480x480, q=2-31, 200 kb/s, 50 fps, 100 tbn, 50 tbc (default)
Metadata:
  encoder         : Lavc56.60.100 gif
Stream mapping:
   Stream #0:0 (h264) -> fps
   Stream #1:0 (png) -> paletteuse:palette
  paletteuse -> Stream #0:0 (gif)
Press [q] to stop, [?] for help

frame=  275 fps= 32 q=-0.0 Lsize=    2480kB time=00:00:05.50 bitrate=3693.5kbits/s    

如何确保输出 fps 始终是用户设置的?
对此的任何资源都非常感谢。

更新

我还注意到使用更高的 fps 例如 filter="fps=90,scale=480:-1:flags=lanczos"具有减慢gif的效果,就像慢动作效果一样,输出fps仍然低于15fps左右,

最佳答案

setting the fps value explicitly gave the same lower fps output results frame= 346 fps= 24 q=-0.0 Lsize= 6506kB time=00:00:06.92 bitrate=7701.8kbits/s



这不是输出fps!这是编码速度。大多数播放器无法正确播放 fps 高于 50 的 GIF。 .见demo表现出这种行为。

关于ffmpeg - 使用 ffmpeg 将 mp4 转换为 gif 时降低 fps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37558504/

相关文章:

windows - ffmpeg 如何将音频转换为 aac 但保持旧文件使用的比特率?

FFMPEG的sws_scale用于将RGB转换为YUV420图像非常慢

PHP ffmpeg 转换错误

ubuntu - 如何使用 ffmpeg 更改部分视频的帧速率

java - 停止循环 GIF 图标

jquery - Onclick 使用 jQuery 播放 GIF 图像并从头开始

jquery - gif 在悬停时开始播放并在鼠标移出时停止?

frame-rate - 赛车游戏,汽车在更快的计算机上移动得更快

ios - FPS 下降和游戏变慢 - Sprite-Kit 和 Swift

java - 为什么我的 FPS 下降?