ffmpeg
文章平均质量分 52
fantasy_arch
这个作者很懒,什么都没留下…
展开
-
ffmpeg解码write_back_intra_pred_mode函数解释
ffmpeg h264 解码原创 2023-02-06 18:47:44 · 238 阅读 · 0 评论 -
PAL8像素格式
像素格式,pal8原创 2022-10-28 21:49:41 · 826 阅读 · 0 评论 -
ffmpeg 命令行多视频轨/音频轨合并,播放
ffmpeg 多音轨 多视频轨道 命令原创 2022-08-30 10:46:42 · 1837 阅读 · 2 评论 -
ffmpeg中的gblur实现
ffmpeg blur原创 2022-07-15 15:25:59 · 438 阅读 · 0 评论 -
ffmpeg实现通用的解码类
ffmpeg API实现通用解码类原创 2022-06-24 10:20:13 · 368 阅读 · 0 评论 -
在ffmpeg上实现libhevc wrapper
集成libhevc解码器到ffmpeg里面原创 2022-06-24 09:57:39 · 514 阅读 · 0 评论 -
给AVFrame直方图均衡化一下
static void HistogramBalance(AVFrame *src){ int counts[256], i, j, v, sum, total;//counts统计,各个像素值数量,sum 累计数量,total总量,v当前像素值 double pcounts[256];// 累计概率值 for (i = 0;i <256; i++) { //先初始化一下 counts[i] = 0; pcou...原创 2021-06-24 19:55:57 · 103 阅读 · 0 评论 -
ffmpeg 解析媒体流时间戳回绕
一 拿flv/rtmp为例,时间戳用4字节表示,最大范围约是42亿。二 遇到问题,在rtmp推流过程中,有些服务器会在推流断开之后,hold住连接一段时间。这样一来就会存在续时间戳的问题,有的服务器没有管时间戳,直接透传的。这样一来就会有个问题,rtmp传输的时候,传输的是相对时间戳,回退的时间戳会被计算成负值。当然也有服务器通过发送绝对时间戳来避开这个问题。在实际项目中,遇到这样的问题,使用公司自研的rtmp服务器,偶尔会出现时间戳超过了32bit表示的最大范围,这就奇怪了。..原创 2021-03-24 23:22:00 · 1267 阅读 · 0 评论 -
ffmpeg 中的h264解码分析--随笔
之前一直以为,ffmpeg中的h264解码和解析是一起的,先解析slice head,然后解析mb_layer,然后解码。今天发现错了。解码h264的代码文件是h264dec.c 函数名ff_h264_execute_decode_slices解析h264的是h264_parser.c 文件中的,h264_parse函数。猜测应该是这样用来区分不同程度的解析视频帧的操作吧,比如转封装的时候,只需要解析h264帧就好。转码的时候需要解码h264帧。...原创 2021-02-22 23:32:43 · 460 阅读 · 2 评论 -
ffmpeg解码h264代码分析-slice解析(一)
get_ue_golomb_long(&nal.gb); // skip first_mb_in_sliceslice_type = get_ue_golomb_31(&nal.gb);// nalu类型后面第一个字段是 slice type, 无符号指数哥伦布编码s->pict_type = ff_h264_golomb_to_pict_type[slice_type % 5];if (p->sei.recovery_point.recovery_frame_cnt原创 2021-01-27 00:28:41 · 933 阅读 · 1 评论 -
ffmpeg h264解码器分析sps(二)
ffmpeg h264解码器解析sps下半部分sps->mb_width = get_ue_golomb(gb) + 1;/*以宏块为单位的宽度*/sps->mb_height = get_ue_golomb(gb) + 1;/*以宏块为单位的高度*/sps->frame_mbs_only_flag = get_bits1(gb);/*frame_mbs_only_flag 等于 0 表示编码视频序列的编码图像可能是编码场或编码帧。frame_mbs_only_原创 2021-01-25 10:08:58 · 319 阅读 · 0 评论 -
ffmpeg h264解码器分析sps(一)
sps解码int ff_h264_decode_seq_parameter_set(GetBitContext *gb, AVCodecContext *avctx,H264ParamSets *ps, int ignore_truncation){AVBufferRef *sps_buf;int profile_idc, level_idc, constraint_set_flags = 0;unsigned int sps_id;int i, log2_max_frame_n原创 2021-01-24 23:46:46 · 712 阅读 · 3 评论 -
nalu格式annex-B和avcc
一 annexb和avccAnnexb视频编码成的包叫做Network Abstraction Layer Units, 也简称为NALU、NAL,每个NALU包都可以被单独的解析和处理,每个NALU包的第一个字节包含了NALU类型,bit3-bit7包含的内容尤其重要(bit 0一定是off的,bit1-2指定了这个NALU是否被其他NALU引用)。NALU格式分为2类,VCL和non-VCL,总共有19种不同的NALU格式。 即常见的如0x00 00 00 01/0x00 00 01avc原创 2021-01-24 21:25:27 · 1622 阅读 · 0 评论 -
直播hls录制,基于nginx改造
https://blog.csdn.net/fantasy_ARM9/article/details/79648837在我之前实现的基础上改造,之前只是录制到目录下。本次支持的功能有通过query_video接口实现查询一段时间的录像,并生成新的m3u8文件,并返回url。例如curl "http://127.0.0.1/query_video?streamid=fan&starttime=20201227150222&endtime=2020122715055" "r原创 2021-01-06 16:27:28 · 413 阅读 · 0 评论 -
引入ffmpeg编译错误taking address of temporary array
libavutil/error.h:120:95: 错误:taking address of temporary array av_make_error_string((char[AV_ERROR_MAX_STRING_SIZE]){0}, AV_ERROR_MAX_STRING_SIZE, errnum)这里使用了的临时变量作为返回值,因此报错。把这个宏定义改为一个函数,就可以避免这个报错inline char * av_err2str(int errnum){ cha...原创 2021-01-05 20:20:09 · 3977 阅读 · 2 评论