ffmpeg
文章平均质量分 69
xindoo
10年技术博主,博客专家,曾就职于阿里 小米,目前任贝壳资深工程师。拥有运维、搜索广告、后端业务相关工作经验,擅长Java、Lniux、Redis……
展开
-
关于ffmpeg height not divisible by 2的错误
例如,如果有一个奇数宽度的视频帧,最右边会有一个无法形成完整块的列像素。的特殊之处在于,它会确保计算出的宽度或高度是偶数,这是为了满足某些视频编码器的要求,它们需要偶数的分辨率尺寸。这对于编码像H.264这样的视频时特别重要,因为(如前所述)这些编码器使用基于块的编码算法,其要求块的尺寸(通常是16×16像素或其它偶数尺寸)能够完全适应视频帧的尺寸。解决方案当然很简单,那就是将分辨率强行指定成偶数即可,在当我思索难道要放弃-1这个好用的自适应参数,在指定宽为1280时,自己去计算出一个高来的时候。原创 2024-03-17 16:40:50 · 857 阅读 · 0 评论 -
ffmpeg视频截取时DTS乱序导致无法截取的问题
因为原始视频不是连续录制,所以就有一定的概率出现A视频的末尾和B视频的开始拼接在同一个m3u8中的可能。在这种情况下,A视频末尾一帧的DTS和B视频首帧的DTS肯定是不连续的,截取时就会报"DTS 0 < 1986554 out of order",最终截取失败。开始以为是hls中的视频片段有问题,后来和同事一起排查发现,所有失败的情况下,执行ffmpeg命令截取时都会报。,顺着这个信息我们发现但凡失败的,都是我们在m3u8里拼接了另外一个视频的部分片段导致的。原创 2023-11-04 18:02:19 · 990 阅读 · 0 评论 -
如何使用ffmpeg制作透明背景的视频
数字人的视频我是使用的腾讯智影生成带绿幕的视频,要实现透明背景,有个很关键的信息需要知道,不是所有的视频格式(视频编码)都支持透明背景,首先我们最常用的mp4就是不支持(不管是h264还是h265)都不支持,目前支持透明背景的只有少部分视频编码,比如google的vp9(webm)格式,上图中我用就是webm+vp9编码的视频。另外一个问题是webm的格式也并不普及,比如腾讯智影导出只支持mp4,像剪映甚至final cut pro这样专业的剪辑软件都无法编辑导出透明背景的webm格式。原创 2023-10-28 22:08:12 · 4694 阅读 · 14 评论 -
使用ffmpeg拼接两张图片
通过本篇文章的介绍,我们了解了使用FFmpeg拼接两张图片的方法。可以看到出来,使用ffmpeg将两张图片拼接在一起还是相当简单的。希望这篇文章能够对大家有所帮助,如果您有任何疑问或者建议,欢迎在评论区留言。原创 2023-05-03 21:45:25 · 3195 阅读 · 1 评论 -
使用ffmpeg缩小视频体积的几种方式
随着视频制作的普及,视频文件的体积也越来越大,给存储和传输带来了很大的困扰。为了解决这个问题,我们可以使用FFmpeg这个强大的工具来缩小视频的体积。本文将介绍三种常用的方法:调整视频的分辨率、调整视频的码率和使用更高效的视频编码格式。原创 2023-04-16 19:46:37 · 11815 阅读 · 0 评论 -
如何用ffmpeg截取视频片段&截取时间不准确的坑
之前在工作中,有遇到需要程序化截取视频片段的场景,这里使用ffmpeg命令行就可以很容易实现,这里也记录下我们使用过程中遇到的坑,希望对大家也有所帮助。这里的参数-c:v copy指的是复用原始视频的编码格式,如果想切换视频编码也可以直接指定,比如(关于修改视频和音频编码的问题,后续会继续出一篇博客)。这里需要注意的是。原创 2023-01-31 00:19:06 · 11197 阅读 · 4 评论 -
使用ffmpeg将视频转成HLS(m3u8)格式
HLS (HTTP Live Streaming)是苹果推出的视频流协议,HLS格式的视频包含一个m3u8文本文件,以及众多的.ts的视频片段,而m3u8文本文件的作用就是将这些ts片段索引起来。这里有个坑,当我用上面命令行生成hls视频后,我发现每个ts的时长不是我指定的2s,而是10s。查阅资料后发现,ts切片的大小严格依赖于原始视频的GOP大小,因为必选保证一个ts内至少包含一个GOP,否则这个ts分片就无法使用。这个参数的作用就是让视频GOP大小为2s,这样就能保证ts分片大小是我们想要的2s了。原创 2022-11-14 10:03:33 · 6152 阅读 · 1 评论 -
用ffmpeg将视频转成gif动图
今天分享一个我制作表情包的技巧。现在视频编辑的门槛已经非常低了,只要装个剪映稍微学一下,很容易就能把你想要的内容剪出来,真的是有手就行。但是视频剪出来的视频是无法直接用做表情包的,只有gif格式的动图才是真正可以用的表情包。我这里分享一些用ffmpeg来生成gif动图的命令行示例,助力大家生产出更多有趣的表情包。是不是相当简单。原创 2022-10-30 22:12:15 · 10566 阅读 · 1 评论 -
使用ffmpeg从视频中提取纯音频&纯视频
提取音频使用ffmpeg可以很轻易从原视频中抽取出其中的音频和视频,抽取音频的命令如下:ffmpeg -i input.mp4 -vn -c:a copy output.aac-vn表示no video,-c:a 是codec of audio的意思,copy是直接拷贝视频中的原始的音频,这里不会涉及音频的编解码,速度会很快。也可以指定-c:a mp3 导出mp3格式的音频。对于音频提取,可以使用-b:a 128k 指定音频的码率是128kb/s,-ar 44k 指定音频的采样频率为44kHz,完原创 2021-11-22 22:45:12 · 32308 阅读 · 2 评论 -
使用ffmpeg将图片合成为视频(附完整参数介绍)
本文介绍下如何使用ffmpeg将大量图片拼接成一个视频,并介绍其中部分参数的含义。使用ffmpeg将图片拼接成视频前,需要将图片文件名做下预处理,文件名中必须有数字将其次序标记出来,这里我直接使用数字将图片重命名了,如下:直接使用命令ffmpeg -f image2 -i %d.jpeg output.mp4 就可以将其转为mp4视频,命令中的%d是数字编号占位符,ffmpeg会按次序加载1-250.jpeg做为输入。这里我们没有指定如何其他参数,所以ffmpeg使用了默认的参数,比如帧率是25fps原创 2021-11-21 12:38:00 · 58150 阅读 · 17 评论 -
使用ffmpeg拼接视频踩坑记录
最近在工作中遇到一个ffmpeg的坑,特此记录下。我们在工作中,有个需求是将分段存储的视频拼接成一个完整的视频,发现使用ffmpeg拼接后视频时长不对。举个列子,我用ffmpeg将4个半小时的mp4视频拼接后,得到的视频长度远超过2小时,观看后发现在视频的连接点,会出现长时间的卡顿,导致最终视频时间超长。在ffmpeg官方文档Concatenating media files中,介绍了三种视频拼接的方式,分别如下:1. 针对同种编码的视频可以将所有视频文件名列到一个文本文件中,格式如下:file '原创 2021-11-06 23:27:14 · 12446 阅读 · 4 评论