
流媒体系列 -- FFMPEG
文章平均质量分 79
流媒体系列 -- FFMPEG
奋斗企鹅CopperSun
这个作者很懒,什么都没留下…
展开
-
【网络通信 -- 直播】FFMPEG -- FFMPEG 定制化编译指南
【网络通信 -- 直播】FFMPEG -- FFMPEG 定制化编译指南Ubuntu 环境下编译定制化的 FFMPEG 静态库【1】安装所需的工具apt-get install autoconf automake bzip2apt-get install cmake gcc g++ git apt-get install libtool make mercurial【2】编译安装 FFMPEG 编解码器插件库2.1 编译安装 NASMtar jxvf nasm-2.14.tar原创 2021-12-16 10:56:17 · 1869 阅读 · 0 评论 -
【网络通信 -- 直播】FFMPEG 简介与常用命令总结
【网络通信 -- 直播】FFMPEG简介与常用命令总结【1】FFMPEG 简介FFmpeg,项目的名称来自 MPEG 视频编码标准,"FF"代表"Fast Forward",一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序;采用 LGPL 或 GPL 许可证,提供录制、转换以及流化音视频的完整解决方案;FFMPEG 音视频处理流程【1.1】FFmpeg 的组成FFMPEG 的整体结构第一部分 : 工具 ffmpeg.exe : 音视频转码、转换器,H.原创 2021-01-08 15:23:15 · 1529 阅读 · 1 评论 -
【网络通信 -- 直播】FFMPEG -- 推送与拉取媒体流 (特殊的流媒体协议总结)
【网络通信 -- 直播】FFMPEG -- 推送与拉取媒体流 (特殊的流媒体协议总结)【1】FFMPEG 推送与拉取 RTP 流简单命令方式获取视频源(H264 文件)ffmpeg -i video_test_mp4_1.mp4 -vcodec copy -an test_1.h264推送视频源(H264 文件)ffmpeg -re -i test_1.h264 -vcodec copy -f rtp rtp://127.0.0.1:1234>test_rtp_h264.sdp拉取原创 2022-05-19 14:16:24 · 1262 阅读 · 0 评论 -
【网络通信 -- 直播】FFMPEG 内存模型与函数 API 简介
【网络通信 -- 直播】FFMPEG 内存模型与函数 API 简介【1】从现有 AVPacket 拷贝到新的 AVPacket 的情况分析从现有的 Packet 拷贝一个新 Packet 的时候,有两种情况1. 两个 Packet 的 buf 引用的是同一数据缓存空间,这时候要注意数据缓存空间的释放问题;2. 两个 Packet 的 buf 引用不同的数据缓存空间,每个 Packet 都有数据缓存空间的拷贝;【2】AVPacket 与 AVFrame 的继承结构分析对于多个原创 2021-06-22 13:40:40 · 274 阅读 · 0 评论 -
【网络通信 -- 直播】FFMPEG 基本结构体与函数简介
【网络通信 -- 直播】FFMPEG 基本结构体与函数简介参考致谢本博客为博主的学习实践总结,并参考了众多博主的博文,在此表示感谢,博主若有不足之处,请批评指正。原创 2021-06-22 13:46:58 · 421 阅读 · 0 评论 -
【网络通信 -- 直播】FFMPEG 视频编码
【网络通信 -- 直播】FFMPEG 视频编码【1】FFMPEG 编码 YUV 为 H264 的一般流程avcodec_find_encoder_by_name : 根据指定的编码器名称查找注册的编码器 avcodec_alloc_context3 : 为 AVCodecContext 分配内存 avcodec_open2 : 打开编解码器 avcodec_send_frame : 将 AVFrame 非压缩数据给编码器 avcodec_receive_packet : 获取到编码后的原创 2021-06-22 13:52:30 · 487 阅读 · 0 评论 -
【网络通信 -- 直播】FFMPEG 视频解码
【网络通信 -- 直播】FFMPEG 视频解码【1】FFMPEG 解码流程参考致谢本博客为博主的学习实践总结,并参考了众多博主的博文,在此表示感谢,博主若有不足之处,请批评指正。原创 2021-06-22 13:54:21 · 394 阅读 · 1 评论 -
【网络通信 -- 直播】FFMPEG 音频编码
【网络通信 -- 直播】FFMPEG 音频编码【0】PCM 样本格式简介PCM (Pulse Code Modulation,脉冲编码调制) 音频数据是未经压缩的音频采样数据裸流,它是由模拟信号经过采样、量化、编码转换成的标准数字音频数据;描述 PCM 数据的 6 个参数1. Sample Rate : 采样频率;8kHz(电话)、44.1kHz(CD)、48kHz(DVD) 2. Sample Size : 量化位数;通常该值为 16 bit 3. Number of Channels原创 2021-06-22 13:49:44 · 348 阅读 · 0 评论 -
【网络通信 -- 直播】FFMPEG 音频重采样
【网络通信 -- 直播】FFMPEG 音频重采样【1】重采样简介重采样,即改变⾳频的采样率(sample rate)、采样格式(sample format)、通道布局(channel layout)等参数,使之按照期望的参数输出;【2】相关概念说明【2.1】采样率采样设备每秒抽取样本的次数【2.2】采样格式与量化精度(位宽)每种⾳频格式有不同的量化精度(位宽),位数越多,表示值越精确,声⾳表现越精准;【2.3】FFMPEG 支持的音频格式enum AVSampleForma原创 2021-06-22 13:55:21 · 273 阅读 · 1 评论 -
【网络通信 -- 直播】FFMPEG 封装复用
【网络通信 -- 直播】FFMPEG 封装复用【1】FFMPEG 封装复用的一般流程参考致谢本博客为博主的学习实践总结,并参考了众多博主的博文,在此表示感谢,博主若有不足之处,请批评指正。【1】最简单的基于FFmpeg的封装格式处理:视音频复用器(muxer)...原创 2021-06-22 13:48:46 · 614 阅读 · 0 评论 -
【网络通信 -- 直播】FFMPEG 时间戳
【网络通信 -- 直播】FFMPEG 时间戳【0】I、P、B 帧与时间戳的基本概念详见,【网络通信 -- 直播】音视频基础知识点总结FFMPEG 中的时间基与时间戳【1】基本概念在 FFmpeg 中,时间基(time_base)是时间戳(timestamp)的单位,时间戳值乘以时间基,可以得到实际的时刻值(以秒等为单位);例如,如果一个视频帧的 dts 是 40,pts 是 160,其 time_base 是 1/1000 秒,则可以计算出此视频帧的解码时刻是 40 毫秒(40/100原创 2021-06-22 13:51:13 · 477 阅读 · 1 评论 -
【网络通信 -- 直播】FFMPEG -- FFPlay 框架(一)
【网络通信 -- 直播】FFMPEG -- FFPlay 框架(一)【1】FFPlay 框架简介【1.1】框架图示【1.2】阶段与功能播放器初始化1. 初始化 packet queue; 2. 初始化 frame queue; 3. 初始化 clock; 4. 创建数据读取线程;数据读取线程1. 打开媒体文件; 2. 打开对应码流的 decoder 以及初始化对应的 audio、video、subtitle 输出; 3. 创建 decoder 线程,audio、vid原创 2021-06-22 13:57:11 · 1091 阅读 · 0 评论 -
【网络通信 -- 直播】FFMPEG -- FFPlay 框架(二)
【网络通信 -- 直播】FFMPEG -- FFPlay 框架(二)【1】音视频同步基础ffplay 中,音频(audio) 和视频(video)有各自的输出线程,其中音频的输出线程是 sdl 的音频输出回调线程,video 的输出线程是程序的主线程;【1.1】音视频同步策略音视频的同步策略,一般有如下几种以音频为基准,同步视频到音频 (AV_SYNC_AUDIO_MASTER) 视频慢了则丢掉部分视频帧(视觉->画面跳帧) 视频快了则继续渲染上一帧 以视频为基准,同步原创 2021-06-22 13:57:39 · 332 阅读 · 1 评论 -
【网络通信 -- 直播】FFMPEG -- FFPlay 框架(三)
【网络通信 -- 直播】FFMPEG -- FFPlay 框架(三)【1】播放、暂停暂停/继续状态切换函数调用关系1 main() -->2 event_loop() -->3 toggle_pause() -->4 stream_toggle_pause()【2】逐帧、调音量、静音【2.1】逐帧逐帧播放的本质,播放⼀帧图像,然后暂停;涉及到的函数和变量step_to_next_frame() is->step=1时单步播放⼀帧,然后...原创 2021-06-22 13:59:19 · 266 阅读 · 1 评论 -
【网络通信 -- 直播】FFMPEG 开发相关优化记录
【网络通信 -- 直播】FFMPEG 开发相关优化记录【1】延迟相关优化【1.1】针对编解码器上下文的参数配置/** * 降低延迟优化尝试 */// AV_CODEC_FLAG_GLOBAL_HEADER -- 将全局头文件放在引渡文件中,而不是每个关键帧中// AV_CODEC_FLAG_LOW_DELAY -- 较低延迟c->flags |= AV_CODEC_FLAG_GLOBAL_HEADER | AV_CODEC_FLAG_LOW_DELAY;//实时推流,零延迟原创 2021-05-07 14:24:30 · 999 阅读 · 0 评论 -
【网络通信 -- 直播】FFMPEG + Intel QSV 硬件编解码
【网络通信 -- 直播】FFMPEG + Intel QSV 硬件编解码【1】编译 QSV 相关源码【1.1】下载连接MediaSDK 20.1.1 相关依赖库,https://github.com/Intel-Media-SDK/MediaSDK/releases/tag/intel-mediasdk-20.1.1【】安装 intel-vaapi-drivercd intel-vaapi-driver./autogen.sh./configuremakemake ins.原创 2021-09-01 16:38:33 · 2782 阅读 · 11 评论