ffmpeg
LIEYz
利人则利己
展开
-
window编译ffmpeg支持NVIDIA GPU加速
官方指导文档根据官方文档一步一步操作,记录一下我遇到过的问题。Unknown option “–disable-shared”.LIEY@DESKTOP-85UH0NA MINGW64 /d/winshare/avproc/ffmpeg/ffmpeg-4.1.3$ ./configure --enable-nonfree -–disable-shared --enable-cuda-sdk --enable-libnpp –-toolchain=msvc --extra-cflags=-I../nv原创 2020-08-26 17:49:55 · 2317 阅读 · 4 评论 -
ffmpeg 滤镜
FFmpeg通过libavfilter库实现滤镜功能,滤镜(filter)处理的是未压缩的原始音视频数据(RGB/YUV视频帧,PCM音频帧等)。比较常用的滤镜有:scale、trim、overlay、rotate。scale滤镜用于缩放,trim滤镜用于帧级剪切,overlay滤镜用于视频叠加,rotate滤镜实现旋转。滤镜语法滤镜链是由逗号分隔的滤镜(filter)序列组成:ffmpeg...原创 2020-04-26 11:11:28 · 575 阅读 · 0 评论 -
ffmpeg 转码
FFmpeg 常规处理流程大流程可以划分为输入、输出、转码、播放四大块。其中转码涉及比较多的处理环节,从图中可以看出,转码功能在整个功能图中占比很大。转码的核心功能在解码和编码两个部分,但在一个可用程序中,编码解码与输入输出是难以分割的。解复用器为解码器提供输入,解码器会输出原始帧,对原始帧可进行各种复杂的滤镜处理,滤镜处理后的帧经编码器生成编码帧,多路流的编码帧经复用器输出到输出文件。转码...原创 2020-04-24 17:25:27 · 363 阅读 · 0 评论 -
ffmpeg推流与收流
FFmpeg 影音处理的层次FFmpeg 中对影音数据的处理,可以划分为协议层、容器层、编码层与原始数据层四个层次:协议层:提供网络协议收发功能,可以接收或推送含封装格式的媒体流。协议层由 libavformat 库及第三方库(如 librtmp)提供支持。容器层:处理各种封装格式。容器层由 libavformat 库提供支持。编码层:处理音视频编码及解码。编码层由各种丰富的编解码器(li...原创 2020-04-24 10:34:42 · 1886 阅读 · 0 评论 -
ffmpeg语法
引用与转义'用于引用,\用于转义特殊字符'本身不能被引用,需要转义前导和尾随的空格字符由引号引用或者转义,否则在解析字符串时移除日期YYYY-MM-DD|YYYYMMDD等now 表示当前时间持续时间‘55’ 表示55秒‘12:03:45’ 表示12小时3分钟45秒‘23.189’ 表示23.189秒前面都可选’-'号,表示负数持续时间视频尺寸指定视频源的尺寸...原创 2019-12-31 18:42:46 · 584 阅读 · 0 评论 -
ffmpeg选项
命令语法ffmpeg [全局选项] {[输入文件选项] -i 输入文件} … {[输出文件选项] 输出文件} …流拷贝流拷贝(Stream copy)是一种对指定流数据仅仅进行复制的拷贝(copy)模式。这种情况下ffmpeg不会对指定流进行解码和编码步骤,而仅仅是分离和混合数据包。选项-re:按视频帧率的速度读取输入-c copy:直接将输入流拷贝到输出,仅涉及解复用和复用,不涉及解...原创 2019-12-30 11:35:44 · 777 阅读 · 0 评论 -
ffmpeg连接rtsp流提示Connection refused
遇到一奇怪问题,在window上用VLC打开视频流成功,用linux后台用ffmpeg却连接失败,摄像机,笔记本,开发板之间网络互通.原因:IP冲突,通过抓包分析,ffmpeg去连接网络里的另一台同IP机器被拒绝,然后返回失败;而VLC去连接被拒绝后再次发起请求,但第二次连的是摄像机,所以连接成功。...原创 2019-08-23 16:10:39 · 10865 阅读 · 0 评论 -
nginx流媒体服务器搭建及使用
1.安装ffmpeg,nginx , nginx-rtmp详情参见:https://blog.csdn.net/IOT_SHUN/article/details/796848562.修改nginx配置文件nginx.conf,放开rtmp推流功能3.启用ffmpeg进行推流 ffmpeg -re -i 2019-8-7_21-27-21.mp4 -c copy -f flv rt...原创 2019-08-09 15:08:11 · 396 阅读 · 0 评论 -
ffmpeg流选择
FFmpeg可以识别5种流类型:音频(audio, a),视频(video, v),字幕(subtitle, s),附加数据(attachment, t)和普通数据(data, d)。流选择(stream selection)是从输入文件中选定某些流进行处理,流选择有两种模式,1) 使用-map选项手动指定要选择的流;2) 无-map选项时由FFmpeg根据相应规则自动选择流。流选择自动模式...原创 2019-08-09 09:48:18 · 2155 阅读 · 0 评论 -
ffmpeg数据结构AVBuffer,AVFrame,AVPacket
AVBufferAVBuffer是FFmpeg中很常用的一种缓冲区,缓冲区使用引用计数(reference-counted)机制。AVBufferRef则对AVBuffer缓冲区提供了一层封装,最主要的是作引用计数处理,实现了一种安全机制。用户不应直接访问AVBuffer,应通过AVBufferRef来访问AVBuffer,以保证安全。struct AVBuffer { u...原创 2019-08-08 11:19:03 · 1389 阅读 · 0 评论 -
ffmpeg音频存储格式packed和planar
packed:多个声道数据交错存放,所有声道的数据交错排放在frame->data[0](即frame->extended_data[0])地址处,数据长度为linesize[0](单位:字节)planar:每个声道数据单独存放,声道0的起始地址为 frame->data[0](或frame->extended_data[0]),声道1的起始地址为 frame->...原创 2019-07-26 16:57:01 · 2241 阅读 · 0 评论 -
ffmpeg时间戳
1 时间基与时间戳的概念在FFmpeg中,时间基(time_base)是时间戳(timestamp)的单位,时间戳值乘以时间基,可以得到实际的时刻值(以秒等为单位)。例如,如果一个视频帧的dts是40,pts是160,其time_base是1/1000秒,那么可以计算出此视频帧的解码时刻是40毫秒(40/1000),显示时刻是160毫秒(160/1000)。FFmpeg中时间戳(pts/dts...原创 2019-07-25 16:20:51 · 1686 阅读 · 2 评论