ffmpeg笔记】的更多相关文章

FFmpeg是目前最牛逼的开源跨平台音视频处理工具. 准备知识 我不是音视频编解码出身的,对于这一块非常的不了解,导致在学习FFmpeg的时候云里雾里的,所以学习之前最好看些资料对音视频编解码有点认识. [总结]FFMPEG视音频编解码零基础学习方法 - CSDN博客 [总结]视音频编解码技术零基础学习方法 - CSDN博客 视频格式那么多,MP4/RMVB/MKV/AVI 等,这些视频格式与编码压缩标准 mpeg4,H.264.H.265 等有什么关系? - 知乎 各种音视频编解码学习详解 -…
在看ffmpeg命令的时候经常会看到有些地方使用--vcodec指定视频解码器,而有些地方使用-c:v指定视频解码器,那这两个有没有区别呢? ffmpeg的官方文档: -vcodec codec (output) Set the video codec. This is an alias for -codec:v. 也就是说-vcodec和-codec:v等价.但是并没有说和-c:v等价啊.看一下-codec:v的文档: -c[:stream_specifier] codec (input/ou…
2019年3月开始,为了将音视频编解码功能集成到Cocos2d-x中,开始接触到FFmpeg: 当时开发环境还在Mac下,编译FFmpeg相比现在用Windows平台要方便的多: 最近,公司内部有个Unity项目中的功能需要用到音视频编解码功能: 新项目目标是移动平台,需要跨平台支持:选定FFmpeg作为音视频编解码库+自行封装C++ Api方便C#层调用. 新项目的开发平台是Windows:所以首先需要的就是编译Windows版本的FFmpeg动态库: 2019年接触FFmpeg时,源码编译的…
1.视频降低质量,减小体积: ffmpeg -i aaa.mp4 -strict -2 -qscale 20 -y outfile.mp4…
HLS流在播放时是先解协议(hls.c)后解封装(mpegts.c),libavformat下的hls.c和mpegts.c实际上是同一个级别的,同属于demuxer. 一.解HLS协议 1. FFmpeg代码分析 首先看一下ff_hls_demuxer的定义: AVInputFormat ff_hls_demuxer = { .name = "hls,applehttp", .long_name = NULL_IF_CONFIG_SMALL("Apple HTTP Live…
在ffmpeg框架中,滤镜(filter)功能通过libavfilter库实现. 一个filter可以同时有多个输入和输出.以图为例: 图中的一系列操作共使用了四个filter,分别是    splite:将输入的流进行分裂复制,分两路输出.     crop:根据给定的参数,对视频进行裁剪     vflip:根据给定参数,对视频进行翻转等操作     overlay:将一路输入覆盖到另一路之上,合并输出为一路视频     整个过程的命令为下图: ffmpeg -i input.mp4 -vf…
1. YUV数据在使用avfilter scale时在特定的分辨率下UV分量不对 由于是小视频,那么分辨率不需要太高,但是有的视频源是1080p,甚至有的是4K的,所以对视频源进行scale非常有必要.scale操作可以使用avfilter或者sws_scale完成,具体参考: FFMpeg学习(四)FFMpeg对视频或图片添加水印: FFMpeg学习(一) 使用FFmpeg将任意格式图片转换成任意格式图片 在对视频数据进行decode后,得到了包含YUV数据的AVFrame,AVFrame中的…
Android放音的采样率固定为44.1KHz,录音的采样率固定为8KHz,因此底层的音频设备驱动需要设置好这两个固定的采样率.如果上层传过来的采样率不符的话,需要进行resample重采样处理. 几个名词: 1. 采样率 采样设备每秒抽取样本的次数 2. 音频格式及量化精度(位宽) 每种音频格式有不同的量化精度(位宽),位数越多,表示值就越精确,声音表现自然就越精准.FFMpeg中音频格式有以下几种,每种格式有其占用的字节数信息: enum AVSampleFormat { AV_SAMPLE…
ffmpeg在avformat_open_input里面已经实现了UDP的协议,所以只需要设置好参数,将url传递进去就可以了. 和打开文件的方式基本一样: 01 AVCodecContext *pVideoCodecCtx = NULL; 02 AVCodec *pVideoCodec = NULL; 03 avcodec_register_all(); 04 av_register_all(); 05 avformat_network_init(); 06 if(m_pConfigManag…
1. 编码: 1.对编码资源的初始化 AVCodec* m_pVideoEncoder;// 特定编码器的参数信息 AVCodecContext* m_pVideoEncoderContext;// 设置的编码参数信息 AVFrame* m_YUV_Frame;// RGB转换为YUV数据帧以减少传输数据量,减少网络带宽占用 AVFrame* m_RGB_Frame;// 获取到的数据帧 SwsContext* m_pSwsc;// 保存由YUV转换为RGB的转换参数的结构体 // 根据给定的编…