一、环境介绍 操作系统介绍:ubuntu 18.04 FFMPEG版本: 4.4.2 摄像头: USB摄像头、虚拟机挂载本机自带摄像头 二、FFMPEG与X264编译下载 参考链接: https://...blog.csdn.net/xiaolong1126626497/article/details/104919095 三、编译FFMPEG 3.1 ffmpeg水印滤镜 如果需要使用ffmpeg的水印功能...,在编译ffmpeg源码时,需要将--enable-libfreetype 选项打开。...--enable-libx264 --enable-gpl --enable-libfreetype --enable-libfontconfig --enable-libfribidi 3.4 加水印测试...: 使用ffmpeg命令 在图片的左上角(横坐标10.纵坐标100)添加水印: wbyq@wbyq:/mnt/hgfs/linux-share-dir$ ffmpeg -i 123.mp4 -vf "drawtext
(2)H264 的I帧类型 【1】一个GOP序列的第一个图像叫做 IDR 图像(立即刷新图像),IDR 图像都是 I 帧图像,但I帧不一定都是IDR帧,只有GOP序列的第1个I帧是IDR帧。...[0:0] [0:1] [1:0] [1:1] [2:0] [2:1] 分别表示第一个输入文件的视频、音频、第二个输入文件的视频、音频、第三个输入文件的视频、音频。...第一条指令就是查询电脑上音频设备。把名字复制过来即可。...第一条指令就是查询电脑上音频设备。把名字复制过来即可。...1 不重复 命令解释: 给r001_2视频加入动图,x,y 代表坐标,eof_action表示动图结束后的动作,0代表重复前一帧,1代表停止所有流,2代表保留主图层。
我们需要借助「ffmpeg」,将抖音下载好的某个卡点视频利用 ffmpeg 命令分离出音频文件,然后合并到上面剪辑的视频当中。...下面通过 5 个步骤完成卡点视频的剪辑,分别是:剪辑开始视频、合并静态图片视频、合并上面两段视频、给视频加入水印、加入背景音乐。 第一步,我们需要从视频素材文件中剪辑一段 2s 的片段。...ps:为了保证每一张****静态图片都显示 0.5s,并且静态图片生成的视频与第一段视频使用同一帧率,因此我们应该针对每一张图片写入多次,即多帧数据。...添加水印也很方便,利用 cv2 中的函数 putText,指定水印的起始坐标、字体样式、字体大小和颜色,然后循环每一帧,写入到视频就可以实现。...#视频、音频合二为一 # 临时文件 video_temp_path = get_temp_path(video_path, 'temp') os.system('ffmpeg -i %s -i %s
FFmpeg滤镜Filter时间内置变量 t:时间戳以秒表示,如果输入的时间戳是未知的,则是NAN n:输入帧的顺序编号,从0开始 pos:输入帧的位置,如果未知则是NAN w:输入视频帧的宽度...h:输入视频帧的高度 FFmpeg为视频加水印 1.文字水印 在视频中增加文字水印,需要有文字字库处理的相关文件,在编译FFmpeg时需要支持FreeType、FontConfig、iconv,...中加入图片水印有两种方式:通过movie指定水印文件路径和通过filter读取输入文件的流并指定水印 ffmpeg -i input1.mp4 -vf "movie=logo.jpg[dzm];[in...音频流滤镜操作 FFmpeg可以对音频进行操作,如拆分声道、合并多声道为单声道、调整声道布局、调整音频采样率等 1.双声道合并单声道 layouts参数可以查看音频的声道布局 ffmpeg -i...第一遍生成统计信息,第二遍生成精确的请求的码率 -passlogfile file 选择两遍的纪录文件名为file c)高级视频选项 -g gop_size 设置图像组大小 -intra 仅适用帧内编码
ffmpeg指令 公共操作参数部分 文件主要操作参数部分 视频操作参数部分 音频操作参数部分 字幕操作参数部分 ffmpeg --help ffmpeg命令基础信息 ffmpeg -L ffmpeg目前所支持的...GOP ( Group of Pictures) 是一组连续的画面,由一张 I 帧和数张 B / P 帧组成,是视频图像编码器和解码器存取的基本单位,它的排列顺序将会一直重复到影像结束。...抽取音视频文件中的AAC音频流: ffmpeg -i jeffmony.mp4 -vn -acodec copy output.aac 下面可以看出来输入的数据中有视频和音频,输出的数据中只有音频了。...4.2 视频中加水印 FFmpeg可以给视频添加水印,水印可以是文字,也可以是图片,主要用来标记视频所属标记等。其实上面也是加水印的一种方式。...在视频中增加文字水印需要准备的条件比较多,需要有文字库处理相关文件,在编译FFmpeg时需要支持FreeType/FontConfig/iconv,系统中需要有相关的字库,在FFmpeg中增加纯字母水印可以使用
pcm" int main() { int res = 0; int videoStream = -1;//标记视频流的编号 int audioStream = -1;//标记音频流的编号..."wb+"); FILE* fp_rgb = fopen(OUTRGB, "wb+"); FILE* fp_s16 = fopen(OUTS16, "wb+"); //初始化FFMPEG...调用了这个才能正常适用编码器和解码器 av_register_all(); printf("FFmpeg's version is: %d\n", avcodec_version()...); //FFMPEG所有的操作都要通过这个AVFormatContext来进行 AVFormatContext* pFormatCtx = NULL; //打开输入视频文件...} } else if (packet.stream_index == audioStream) { //解码音频帧
这期我们介绍的是添加静态文字水印,当然可以添加图片水印,动态文字水印,只是这期的重点是添加静态文字水印。添加静态文字水印有两种方法。 不论怎么样,都要引入 Maven FFmpeg 原生的) FFmpegFrameFilter (过滤器) FFmpegFrameFilter 功能很强大,这个类一共有三个构造方法。...第一个 //过滤音频,给音频做一些处理 public FFmpegFrameFilter(String afilters, int audioChannels) 第二个 //过滤视频,给视频做一些处理...这个是音频的一些处理设置,具体参考 ffmpeg.imageWidth imageHeight这个是视频的宽和高。...然后把文字加在每一帧上) 这个逻辑很清楚吧,就是视频里取每一帧图片,然后添加上文字在放上去。
FFmpeg可以为视频添加水印,水印可以时文字,也可以时图片,主要用来标记视频归属。...,从0开始 pos 输入帧的位置,如果位置则是NAN w 输入视频帧的宽度 h 输入视频帧的高度 文字水印 在视频中增加文字水印需要准备的条件比较多,需要有文字字库处理的相关文件,在编译FFmpeg时需要支持...中加入图片水印有两种方式,一是通过movie指定水印文件路径,另外一种方式是通filter读取输入文件的流并指定为水印, 这里重点介绍如何读取movie图片文件作为水印 图片就会出现在视频的左上角 ffmpeg...默认为重复 repeat(值为0) :重复前一帧 endall(值为1) :停止所有帧 pass(值为2) :保留主图层 format 设置output的像素格式。...简单filtergraphs配置了每个流的筛选器选项(与视频和音频分别-vf和-af别名)。
功能 视频转换和编辑工具 示例 1、从mp4视频文件中提取音频并保存为mp3音频格式 [root@node_116 video]# ffmpeg -i video.mp4 -vn sound.mp3 ffmpeg...ffmpeg -i frame_%d.png -vcodec mpeg4 frame.mp4 4、提取视频文件指定时间点的1帧,下面演示的是提取第10秒的1帧。...ffmpeg -ss 00:05 -to 00:10 -i video.mp4 -codec copy output.mp4 6、将video.mp4转换为video.avi,ACC音频为128kbit...颜色为红色,水印内容为LinuxTime。...水印位置对应命令中的x轴和y轴。
一、" 解封装 - 解码 - 播放 过程 " 涉及到的函数和结构体概述 1、打开媒体文件 在上一篇博客 【FFmpeg】FFmpeg 播放器框架 ① ( “ 解封装 - 解码 - 播放 过程 “ 涉及到的函数和结构体..., 每个画面帧都是 ARGB 像素格式的画面 ; 音频数据需要解码成 PCM 数据 , 才能被扬声器播放出来 ; 注意 : 解码后的 音视频 比 压缩状态下 的 音视频 大 10 ~ 100 倍不等 ;...4、音视频解码 - 将压缩数据 AVPacket 解码为 AVFrame 音频帧和视频帧 解复用操作后会得到 音频包队列 和 视频包队列 , 都是 AVPacket 队列 , 其中的 压缩数据 需要进行解码...解码后得到 采样帧队列 视频包队列 解码后得到 图像帧队列 采样帧队列 和 图像帧队列 中的元素都是 AVFrame 结构体对象 ; 将 采样帧队列 和 图像帧队列 进行音视频同步校准操作 , 然后...采样帧送入 扬声器 , 图像帧送入 显示器 , 就可以完成音视频数据的播放操作 ;
FFmpeg 功能 FFmpeg有非常强大的功能包括:视频采集、视频格式转化、视频截图、视频添加水印、视频切片(m3u8、ts)、视频录制、视频推流、更改音视频参数(编码方式、分辨率、码率、比特率等)功能...存数据 视频的话,每个结构一般是存一帧;音频可能有好几帧 解码前数据:AVPacket 存储压缩编码数据相关信息的结构体 解码后数据:AVFrame 位于frame.h,一般用于存储原始数据(即非压缩数据...3.帧率转换 ffmpeg -i input.mp4 -r 5 output.mp4 4.提取视频/音频 //提取视频 ffmpeg -i input.mp4 -an output.mp4 //提取音频...ffmpeg -i input.mp4 -vn output.mp3 5.可以获取当前视频所有帧包的时间和大小信息 ffprobe -show_packets input.mp4 我们还可以通过ffmpeg...命令给视频添加滤镜,添加水印,添加字幕,或者对视频进行截取,压缩,推流等待操作,这里就不做一一介绍,有兴趣对读者可以深入去查看相关资料。
视频同步到音频的基本方法是:如果视频超前音频,则不进行播放,以等待音频;如果视频落后音频,则丢弃当前帧直接播放下一帧,以追赶音频。...2、FFmpeg 转码步骤分析 解复用 从输入文件中读取编码帧,判断流类型,根据流类型将编码帧送入视频解码器或音频解码器。 解码 将视音频编码帧解码生成原始帧。...滤镜 提供多种多样的滤镜,用来处理原始帧数据 FFmpeg。 编码 将原始视音频帧编码生成编码帧。 复用 将编码帧按不同流类型交织写入输出文件。...2、ffmpeg 添加水印基本流程 这里主要讲述如何利用 ffmpeg 向视频文件添加水印这一功能,文中最后会给出源代码下载地址以及视频下载地址,视频除了讲述添加水印的基本原理以及代码实现,还提到了要注意的一些地方...利用 ffmpeg 向视频文件添加水印的基本原理是将视频文件的视频包解码成一帧帧 “Frame”,通过 ffmpeg Filter(overlay)实现待添加水印与 “Frame” 的叠加,最后将叠加后的视频帧进行编码并将编码后的数据写到输出文件里
如果已经完成FFMPEG录制视频保存到本地的功能,完成RTMP推流只需要修改几行代码即可完成。 推流到RTMP服务器与保存到本地的代码基本相同,主要是输出地址不一样。...filename); //文件名称替换成网络地址 //指定编码器 fmt->video_codec=AV_CODEC_ID_H264; fmt->audio_codec=AV_CODEC_ID_AAC; FFMPEG...{ qDebug("无法初始化重采样上下文\n"); exit(1); } } /*准备一个'frame_size'样本的16位虚拟音频帧...for(j = 0; jnb_samples; j++) //nb_samples: 此帧描述的音频样本数(每个通道) { for(i=0;ipts = ost->next_pts; ost->next_pts += frame->nb_samples; #endif return frame; } /* *编码一个音频帧并将其发送到多路复用器
'); 视频添加水印 通过 watermark 可以设置水印的相关信息,第一个参数是设置水印的地址,第二个参数里面可以设置水印位置参数 position: 可以选择 relative 相对定位,或者...\Format\Video\X264(), 'video_watermark_new.mp4'); 生成音频波形 可以看到,想要生成音频波形,必须使用的是音频文件,如果是视频文件,需要先将其中的音频提取出来...', 'video_3.mp4')) ->saveFromSameCodecs('video.mp4', TRUE); 截取音视频 TimeCode::fromSeconds: 有两个参数,第一个是从第几秒开始截取...setAudioChannels(2) ->setAudioKiloBitrate(256); $video->save($format, 'video.avi'); 调整视频帧率 framerate: 可以设置视频的帧速率...大家应该都知道,视频其实是由一张张图片组成的,而一秒中播放30张以上其实肉眼就会把图片看成视频了,这里的 30 就是所谓的帧速了,一般设置 60 即可,为了测试这里设置成 1000 <?
3.2.3 录制音频 linux系统录制系统的麦克风音频可以使用以下命令: ffmpeg -f alsa -i hw:0 output.wav 3.3 分解/封装 FFmpeg提供了从多媒体文件中分离出音频或视频流...FFmpeg可以将视频逐帧保存为图片,或将图片序列合成为视频。...3.6.1 视频转图片 将视频逐帧保存为JPG图片序列: ffmpeg -i input.mp4 -r 1 -f image2 output_%03d.jpg 其中,-r 1表示每秒提取一帧。...滤镜添加水印图片到视频中: ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" output.mp4 overlay...=10:10表示水印图片的位置偏移量。
按帧截取图像 按时间截取图像 截取视频片段 截取视频区域 拼接视频 将图片合并为视频 添加音频 添加水印 添加动画 添加文字 添加字幕 旋转视频 基本概念 容器 我们熟悉的mp4,rmvb,mkv,avi...滤镜将一个视频叠放在另一个视频上,可用于在视频中添加水印和动画等操作。...overlay的第一个输入为底层视频流,第二个输入为叠加视频流。main_w和main_h为底层视频的宽和高,overlay_w和overlay_h为叠加视频的宽和高。...指定输出音频采样率 -ac: 指定输出音频通道(channel)数, 这里设置为双声道 -ab: 指定输出音频比特率,单位kb/s 按帧截取图像 截取第2s开始的10帧图像, 伸缩为352x240:...ffmpeg -i img%3d.png output.mp4 添加音频 ffmpeg -i bgm.mp3 -i test.mp4 output.mp4 添加水印 ffmpeg -y \ -
result.mp4' result_video.write_videofile(result_path) 5、鬼畜视频 鬼畜视频来源于 B 站,在抖音上很多搞笑类视频剪辑都会使用到鬼畜处理,包含:画面帧重复...# 加入图片水印 # 包含:水印的时长、位置、透明度等 logo = (ImageClip("....video = CompositeVideoClip([clip,texpClip.set_start(start)]) 7、转码 需要说明的是,如果使用 AE 制作动画视频,最后的视频文件会非常大,使用ffmpeg...video.write_videofile('bws_audio.mp4') 9.4、逐帧提取画面 我们都知道,视频是由一帧一帧的图片组成的,我们也可以将画面一帧一帧提取出来: import cv2...比特率单位bps final.write_videofile("test.mp4", codec="libx264", bitrate="10000000") 第一步:导入moviepy 模块 第二步
裁剪和剪辑:可以从视频或音频文件中剪裁或提取特定的片段。 合并和拼接:可以将多个音频或视频文件合并成一个文件,或者将多个文件拼接成一个序列。 添加水印和字幕:可以在视频中添加图片水印或文本字幕。..."subtitles='a.srt File - 1 srtout.mp4'" 添加LOGO水印 ffmpeg -i I:/8.mp4 -i I:/logo.png -filter_complex overlay...这样,ffmpeg会从input.mp4的第20s时间开始,往下10s,即20~30s这10秒钟之间,每隔1s就抓一帧,总共会抓10帧。...序列帧与视频的相互转换 分离视频音频流 #分离视频流 ffmpeg -i input_file -vcodec copy -an output_file_video #分离音频流 ffmpeg -i input_file...-bf:B帧数目控制 -g:关键帧间隔控制 -s:分辨率控制 视频封装 ffmpeg –i video_file –i audio_file –vcodec copy –acodec copy output_file
8 位蓝色 ; eof_action : 设置在叠加内容结束时的处理行为 , 如 : 停止叠加或者循环播放 , 可设置的值如下 : repeat : 参数值为 0 , 当输入视频结束时 , 重复最后一帧...; pass : 参数值为 2 , 保留 主图层 ; repeatlast : 如果设置为 1,当叠加内容结束后,将重复最后一帧的内容。...】Filter 过滤器 ④ ( 图片水印 - movie 过滤器 / overlay 过滤器 | movie 过滤器内置参数值简介 | 图片水印示例 ) -> movie 过滤器内置参数值简介 博客章节...=10:y=10:eof_action=1[out]" output.mp4 上述命令执行后 , 生成的视频 , 内部嵌入视频时长比外部视频时长短 , 内部视频播放结束后 , 外部视频也停止 ; ( 音频没有停止...】Filter 过滤器 ④ ( 图片水印 - movie 过滤器 / overlay 过滤器 | movie 过滤器内置参数值简介 | 图片水印示例 ) 3、添加图片水印 - 水印跑马灯不停移动 博客章节的
交叉淡入淡出将在第一个流的结尾附近的指定持续时间内应用。)...8.27 amultiply(将第一音频流与第二音频流相乘,并将结果存储在输出音频流中。通过将来自第一流的每个样本与来自第二流的相同位置的样本相乘来完成乘法。)...8.29 anlmdn(使用非本地均值算法减少音频样本中的宽带噪声。) 8.30 anlms(使用第二个音频流将标准化的最小均方算法应用于第一个音频流。)...水印、截图、人物滤镜等常用命令 (1) 水印 overlaye ffmpeg -i good_scale.mp4 -i mark.png -filter_complex overlay=...(8) 视频中去水印delogo ffmpeg -i good_mark.mp4 -vf delogo=x=10:y=10:w=100:h=60 delogo.mp4 (ffmpeg -i good_scale.mp4
领取专属 10元无门槛券
手把手带您无忧上云