随笔分类 - FFmpeg
摘要:寻找自己的采集图像设备 av_find_input_format() 根据名称查找链表当中的输入的格式 如果要查找设备在使用之前去调用: avdevice_register_all(); avformat_open_input() 主要用来打开输入流并存储到格式化上下文AVFormatContext
阅读全文
摘要:分析视频流 stream[0] duration = 2019840 // 视频的时长时间戳,计算秒 2019840/12800 index = 0 // 流索引,这是一个视频流 nb_frames // 视频的总帧数 avg_frame_rate // 视频的帧数, num/den就是帧数 tim
阅读全文
摘要:采样率 sample_rate: 44100 采样率指一秒钟采集44100次 声道 channels: 2 一般有左声道,右声道,声道数量越多采集出来的文件大小越大 样本大小(采样的格式) sample_size/sample_fmt: AV_SAMPLE_FMT_S16 AV_SAMPLE_FMT
阅读全文
摘要:PTS/DTS(时间戳) 要想解决时间同步问题就必须要了解ffmpeg中的PTS和DTS到底是什么 PTS: PTS(Presentation TimeStamp)是渲染用的时间戳,播放器会根据这个时间戳进行渲染播放 DTS: DTS(Decoding TimeStamp)解码时间戳,在视频pack
阅读全文
摘要:sws_scale 可以使用它进行图像像素的转换,分辨率的转换 sws_getContext 分配并返回一个SwsContext, 在sws_scale中可以执行执行转换和缩放的功能
阅读全文
摘要:常用的结构体 AVCodec:编解码结构体 AVCodecContext:编解码上下文 AVFrame:解码后的帧 结构体的常用api av_frame_alloc():生成AVFrame结构体的 av_frame_free():释放AVFrame结构体 avcodec_alloc_context3
阅读全文
摘要:```c#include extern "C"{#include #include #include #include #include #include #include }using namespace std;static AVFrame *alloc_audio_frame(enum AVSampleFormat sample_fmt, uint64_t channel_la...
阅读全文
摘要:```c++#include extern "C"{#include #include #include #include #include #include #include }using namespace std;static AVFrame *alloc_picture(enum AVPixelFormat pix_fmt, int width, int height) { AVFr...
阅读全文
摘要:H264中的I/B/P帧 I帧是关键帧,它采用了帧内压缩技术 B帧是前后参考帧,它属于帧间压缩技术,在压缩B帧之前,会参考前后非压缩视频帧,记录前后两帧不存放“残差值”,目的是为了得到更好的压缩率 P帧是向后参考帧,P帧也属于帧间压缩技术,对于B帧来说,P帧的压缩率要比b帧低 为了降低直播的延迟,在
阅读全文
摘要:多媒体互转的主要使用API 分配一个输出上下文的空间:avformat_alloc_output_context2(); 释放输出上下文的空间:avformat_free_context(); 生成一个新的流:avformat_new_stream(); 拷贝视频的参数:avcodec_parame
阅读全文
摘要:主要使用函数 ffmpeg中的所有编解码库,网络协议注册到程序里面来:av_register_all() 打开一个多媒体文件:avformat_open_input() 关闭一个多媒体文件:avformat_close_input() 打印meta信息:av_dump_format() 实例 vim
阅读全文
摘要:主要使用函数 特征码:Start code 解码的一些视频参数,分辨率和帧率:SPS/PPS ffmpeg获取SPS/PPS:codec extradata 实例
阅读全文
摘要:主要使用函数 特征码:Start code 解码的一些视频参数,分辨率和帧率:SPS/PPS ffmpeg获取SPS/PPS:codec extradata 实例
阅读全文
摘要:概念 多媒体文件其实是个容器 在容器里面有很多流(stream/track) 每种流是不同的编码器编码的 从流中读出的数据称为包 在一个包中包含着一个或者多个帧的 几个重要的结构体 多媒体文件上下文: AVFormatContext 流处理:AVStream 包处理:AVPacket FFmpeg操
阅读全文
摘要:重要函数 打开文件夹:avio_open_dir() 读取文件夹:avio_read_dir() 关闭文件夹:avio_close_dir() 结构体, 操作目录的上下文:AVIODirContext() 目录项,用于存放文件名,文件大小等信息:AVIODirEntry() 实例 vim ffmpe
阅读全文
摘要:文件的删除与重命名 举例操作 vim ffmpeg_file.c c // FFmpeg文件操作的头文件 include int main(int argc, char argv[]) { int ret; ret = avpriv_io_move("111.txt", "222.txt"); if
阅读全文
摘要:日志文件的三大步 常用的日志级别 例子 vim ffmpeg_log.c clang g o ffmpeg_log ffmpeg_log.c lavutil ./ffmpeg_log
阅读全文
摘要:
阅读全文
摘要:直播推流 ffmpeg -re -i out.mp4 -c copy -f flv rtmp://server/live/streamName -re : 减慢帧率 -i : 指定的文件 -c : 指定音视频 copy -f : 指定格式化的格式为flv格式 rtmp://server/live/s
阅读全文
摘要:视频转图片命令 ffmpeg -i input.flv -r 1 -f image2 image-%3d.jpeg -i : 指定输入文件 -r : 帧数 1 -f : 指定格式化的格式为image2 生成的结果 image-%3d.jpeg %3d是指3位数字 图片转视频 ffmpeg -i im
阅读全文

浙公网安备 33010602011771号