FFmpeg 截取 webp 动图
FFmpeg 支持对动态 webp 图片的编码,但是默认参数下编码后的图片有两个比较明显的问题:
- 动图不会自动循环播放,会停留在最后一帧画面
- 图像质量差,有比较明显的马赛克
FFmpeg 支持对动态 webp 图片的编码,但是默认参数下编码后的图片有两个比较明显的问题:
ffcutter 初版写完有段日子了。本想着把功能再丰富下, UI 规范后再开源,无奈此后一连数月都忙于新家的智能家居系统的设计开发,ffcutter 就淡忘了。就以现状开源了吧,献给有缘人 。
转码 mp4 的时候发现,输出的 H264 视频流码率高达 10M kbps+,而源码率只有约 2M kbps,这明显是不对的。明明已经通过 AVCodecContext::bit_rate
字段设定了码率却没有生效。
通过这篇 wiki,找到了答案。H264 有一套很复杂的码控规范,不能简单通过一个固定的码率数值指定输出码率——H264 基本上做不到这么精确的码控。推荐做法是启用 CRF 码控,设置合适的压缩率:
1 | // 启用 CRF 码控 |
在 avcodec_open2()
之前加入上边代码块,输出视频流码率下降明显。
折腾了两周,视频编辑器已初具规模:
基本满足了当初想做一个 gif 生成器的需求,也是时候回顾下过去两周踩过的坑了。