![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ffmpeg
文章平均质量分 69
破浪征程
我走过山时,山不说话
我路过海时,海不说话
小毛驴滴滴答答
倚天剑伴我走天涯。
大家都说我因为爱着杨过大侠
才在峨嵋山上出了家
其实我只是爱上了峨嵋山上的云和霞
像极了十六岁那年的烟花
展开
-
使用FFmpeg实现精确剪切视频
基本的剪切命令:用-ss和-t选项, 从第 30 秒开始,向后截取 10 秒的视频,并保存: ffmpeg -i input.wmv -ss 00:00:30.0 -c copy -t 00:00:10.0-codec copy output.wmv ffmpeg -i input.wmv -ss 30 -c copy -t 10 -codec copy output.wmv 达成相同效果,也可以用-ss和-to选项,ffmpeg -i input.wm...原创 2020-06-03 18:01:43 · 21654 阅读 · 7 评论 -
使用FFMPEG进行音频重采样
7.将输出的buffer拷贝到SDL2音频回调缓冲区中播放,或者直接写入文件,使用ffplay进行测试,也可以封装成Frame送到音频编码器中(如aac),进行编码后保存。4.创建一个输出buffer, 根据输出的音频参数(采样率,通道数,样本位深度)申请空间,填入默认数据,用于存储重采样后的数据。3.创建一个输入buffer, 根据输入的音频参数(采样率,通道数,样本位深度)申请空间,填入默认数据,用于存储输入音频数据。5.读取PCM数据,每次读取的大小等于输入buffer的大小。原创 2023-05-20 12:19:35 · 1658 阅读 · 0 评论 -
使用FFMPEG加载外挂或内封字幕小记
ffmpeg -i .\beautlWorld.mp4 -vf subtitles=filename="'D\:\\测试工程\\sound\\01.ass'" -y ass.mp4。加载字幕需要使用subtitles过滤器。注意我用了双引号和单引号。如果字幕文件就在当前目录,则使用如下命令即可。加载外挂字幕很简单,设置下过滤器参数中的filename即可。内嵌字幕,字幕与视频图像合二为一,成为视频帧的一部分。内封字幕,字幕封装在视频容器中,成为字幕流。外挂字幕,也就字幕文件,如ass,srt等。原创 2023-05-14 14:05:09 · 2338 阅读 · 0 评论 -
使用FFMPEG和SDL2实现音视频同步的简易视频播放器
这里我简单做了一个视频播放器,并简单做了音视频同步。1.如果当前视频帧与音频帧的播放时间差值小于或等于视频帧持续时间,则表示音视频同步,正常延时。2.如果视频帧比音频帧快,且大于视频帧一帧的时长,延时2倍的正常延时。3.如果视频帧比音频帧慢,且大于视频帧一帧的时长,则立即播放下一帧。4.创建解复用线程,音频解码播放线程,视频解码播放线程。6.根据音频帧和视频帧的差值计算延时。2.将取到的数据送至视频解码器中。5.计算视频帧的pts和持续时间。3.循环从解码器中取解码音频帧。3.循环从解码器中取解码视频帧。原创 2023-05-12 17:22:13 · 1782 阅读 · 4 评论 -
FFMPEG中的filter使用二
上一篇我们在使用滤镜时是手动创建各种滤镜,然后根据处理链路手动链接不同的过滤器,有助于我们理解滤镜的流程。这一篇我们使用参数形式,让ffmpeg自动帮我们创建和链接过滤器,这样可以减少代码量,同时我们可以先使用参数测试后,直接将参数复制到代码中使用。原创 2023-04-30 12:01:28 · 1144 阅读 · 0 评论 -
FFMPEG中的filter使用一
2.创建buffer和buffersink过滤器,buffer是过滤器的源头用来,buffersink作为过滤器的终结点。8.av_buffersink_get_frame从buffersink获取处理过的帧数据。4.avfilter_link根据处理流程连接过滤器,图中有两条处理线路,参考下图。7.av_buffersrc_add_frame发送一帧到buffer过滤器中。5.使用avfilter_graph_config检查过滤流程配置。3.创建我们需要使用的各类过滤器。9.文件读取完成后清理工作。原创 2023-04-30 11:11:41 · 349 阅读 · 0 评论 -
关于FFMPEG中的filter滤镜的简单介绍
滤镜的作用主要是对原始的音视频数据进行处理以实现各种各样的效果。比如叠加水印,翻转缩放视频等。下图表示的正常转码流程,滤镜在解码和编码中间,虚线表示可有可无。使用命令查看ffmpeg支持的滤镜查看某个滤镜的详细参数上图显示的pad滤镜的功能和需要的参数。除了source和sink filter,其他filter都至少有一个输入、至少一个输出。也可以简单的分为简单滤镜和复杂滤镜。简单滤镜:只有一个输入和输出,命令行中使用(视频滤镜),(音频滤镜)复杂滤镜:有多个输入和输出,命令行中使用或。原创 2023-04-29 19:43:49 · 2116 阅读 · 0 评论 -
使用FFMPEG库封装264视频和acc音频数据到MP4文件中
3.使用函数avformat_new_stream给输出的AVFormatContext结构创建音频和视频流,使用avcodec_parameters_copy方法将音视频的编码参数拷贝到新创建的对应的流的codecpar结构中。1.使用avformat_open_input分别打开视频和音频文件,初始化其AVFormatContext,使用avformat_find_stream_info获取编码器基本信息。5.使用avformat_write_header写入流的头信息到输出文件中。原创 2023-04-27 00:14:47 · 2176 阅读 · 0 评论 -
使用FFMPEG分离mp4/flv文件中的264视频和aac音频
ffmpeg 4.4一个MP4或flv格式的视频文件。原创 2023-04-25 23:02:47 · 1837 阅读 · 0 评论 -
使用FFMPEG库将YUV编码为H264
最后使用avcodec_free_context进行释放。编码器结构可以使用avcodec_find_encoder(AV_CODEC_ID_H264),也可使用。音频:1.sample format 2.nb_samples 3.channel_layout。gop_size: 默认250,也就是每250帧一个关键帧。调用该函数前:time_base,也就是每帧显示的时间。max_b_frames: 默认3, b帧最大连续个数。align:直接对其,默认给0,根据当前CPU自行设置。原创 2023-04-22 18:42:49 · 1236 阅读 · 0 评论 -
使用FFMPEG库将PCM编码为AAC
2.关于比特率,比特率影响的是播放时编码后的数据每秒传递给解码器的数据量,比如比特率128kb/s,那么每秒就会给解码器发送128000 / 8 = 1600个字节的数据,注意这1600个数据是压缩数据,其中是很多的未解码的包(avpacket), 那么这1600个数据最终会被解码成48000 * 2个字节的数据(双通道)。同时我们播放时发现,过大的比特率编码器并未采用,说明当比特率大于某一个值时,编码器不会丢弃数据,此时将压缩后的数据直接生成文件,而后比特率值有编码器计算后设置。原创 2023-04-20 22:57:42 · 1043 阅读 · 0 评论 -
FFMPEG 关于smaple_fmts的理解及ffplay播放PCM
根据位深度,是否有符号,打包类型,定义了12种类型,AV_SAMPLE_FMT_NONE表示未知类型,最后的AV_SAMPLE_FMT_NB表示样本格式个数为12个。当我将一个aac的音频文件解码为原始的PCM数据后,使用ffplay播放测试是否成功时,需要提供给ffplay 采样率,通道数,PCM的格式类型 3个参数,否则无法播放!好了我们已经知道fltp表示的是float 32位数据,我们再结合前面的PCM的格式数据,在根据我们的电脑的大小端类型知道,我们需要传递的参数是。具体对照表如下,定义在。原创 2023-04-17 17:38:31 · 901 阅读 · 0 评论 -
FFMPEG 常用命令整理
如果关键帧间隔大于2秒,则拆分的视频也会大于2秒,可以每2秒插入一个关键帧(会增加文件大小)后再执行拆分。使用CAVLC(熵编码的一种,相较于CABAC更快,当然视频会更大)编码视频。主要用于测试,根据视频长度调整参数,这里的视频为10s 每秒30帧。将视频平滑拆分,会根据关键帧的位置拆分,每两秒一个视频(针对帧数为30帧的视频,其他帧数请调整参数。生成只有一个I帧,剩下全是P帧的视频(跟帧率有关,30fps则生成30张图片。将视频第一秒的视频提取为图片序列(测试I,P,B帧的数量。每一秒插入一个I帧(原创 2023-04-11 20:14:52 · 790 阅读 · 0 评论 -
使用ffmpeg调试宏块和运动向量
以前版本的 ffmpeg(2017 年 10 月之前)也允许您分析宏块,但此选项已被删除。`codecview` 过滤器可用于将运动矢量显示为每个宏块的小箭头。早期版本的 ffmpeg 没有这个过滤器,但支持现已弃用的 -vismv 选项。此选项不适用于不导出运动矢量的编解码器(大多数非基于 MPEG 的编解码器)pf - P 图片的前向预测运动向量。bf – B 图片的前向预测运动向量。bb – B 图片的后向预测运动向量。原创 2023-04-09 21:29:14 · 216 阅读 · 0 评论