视音频
sidemap
内不修正其所以有,然常欲人之有
展开
-
【live555】rtspURL的客户端数量是如何减少的
通过搜索是源代码,发现decrementReferenceCount存在两处:1、在处理DESCRIBE命令时,会临时增加ServerMediaSession的数量,当生成SDPDescription之后,就会decrementReferenceCount。所以此处可以忽略不计.void RTSPServer::RTSPClientConnection::handleCmd_DESCRIBE(char const* urlPreSuffix, char const* urlSuffix, cha原创 2022-04-14 14:36:36 · 302 阅读 · 0 评论 -
【live555】RTSPServer中ClientSession创建与析构
live555 ClientSession原创 2022-04-14 14:33:47 · 454 阅读 · 0 评论 -
【live555】向rtsp server添加删除ServerMediaSession发生崩溃
live555原创 2022-04-14 13:38:31 · 381 阅读 · 0 评论 -
【live555】提供rtsp地址之前,需要在RTSPServer先创建ServerMediaSession
live555 rtsp原创 2022-04-14 13:22:17 · 198 阅读 · 0 评论 -
【FFmpeg】avfilter_graph_parse_ptr源码详解
ffmpeg filter原创 2022-03-24 14:51:10 · 1019 阅读 · 0 评论 -
【FFmpeg】Filter *** has an unconnected output原因之一
ffmpeg filter原创 2022-03-18 17:18:07 · 6373 阅读 · 1 评论 -
【FFmpeg】av_get_token用法
ffmpeg原创 2022-03-17 20:20:18 · 398 阅读 · 0 评论 -
【FFmpeg】avfilter_graph_parse_ptr 函数注解拆解
ffmpeg filter原创 2022-03-17 19:20:48 · 4748 阅读 · 3 评论 -
【FFmpeg】播放生成mp4文件画面抖动----原因之一
ffmpeg 抖动原创 2022-03-10 16:42:40 · 3283 阅读 · 1 评论 -
【ffmpeg】编译及使用外部的编解码器
ffmpeg原创 2022-03-09 15:55:11 · 1021 阅读 · 0 评论 -
【live555】RTSPServer的创建与销毁
rtsp live555原创 2022-02-24 10:44:52 · 1074 阅读 · 0 评论 -
【FFmpeg】文件转码/生成进度 简述
文件:通过AVFormatContext进行封装音视频:每种MediaType通过AVStream进行封装文件 包含 音频和视频AVFormatContext 包含 多个标识媒体类型的AVStream要计算文件转码/生成的进度可以通过综合所含的流信息进行计算方法1:帧率1、以Video 的AVStream进行计算2、利用AVStream中nb_frames和avg_frame_rate进行计算当...原创 2022-01-18 14:57:55 · 2942 阅读 · 0 评论 -
【FFmpeg】filter_fps 矫正输出帧的pts
创建src filter时,设置了base_time。通过fps进行帧率调整,发现输出AVFrame->pts的时间基明显不是src filter的时间基。通过查看FFmpeg源代码,发现将输出的帧时间基设置为1/FrameRate了。根据log[Read frame with in pts ***, out pts ***]查找线索。...原创 2021-10-09 16:58:14 · 571 阅读 · 0 评论 -
【FFMPEG】AVFrame的释放
AVFrame申请,一般通过av_frame_alloc的方式申请;但是,如果对AVFrame其中的data成员进行赋值,需要通过类似av_image_alloc的方式申请data的空间。如果申请了data空间,需要再释放该AVFrame时,需要首先利用av_freep(AVFrame->data[0]),对其中的data空间进行释放;然后使用av_frame_free对AVFrame进行释放。...原创 2021-10-08 19:04:18 · 1296 阅读 · 0 评论 -
向海康大华播放器放入数据,一会就提示buffer满的原因
在使用海康大华播放器进行视频解码,往往通过网络SDK接收到网络流,然后再将数据向播放器input,但是可能一会播放器就会提示已满的错误信息(当然这里不是只放不取的)。这些播放器通常有播放倍速,默认是1倍速。如果塞入的速度快于播放器播放的速度,很容易出现播放器buffer满的提示。因此,在向内部放入数据时,放入的速度应该与播放器播放的速度匹配。...原创 2021-09-28 09:39:38 · 387 阅读 · 0 评论 -
大华播放器退出时发生assert原因
当使用大华播放器进行音视频解码播放时,在程序退出时,发生了assert core dump。如下:../../Src/AudioDecode/AudioDecode.cpp:43: virtual dhplay::CAudioDecode::~CAudioDecode(): Assertion `m_pDecode == __null' failed.../../Src/VideoDecode/VideoDecode.cpp:64: virtual dhplay::CVideoDecode::~CV原创 2021-09-22 14:49:37 · 166 阅读 · 0 评论 -
【FFMPEG】错误 Invalid filterchain containing an unlabelled output pad
当使用avfilter_graph_parse_ptr接口,传入filters的参数为fps=fps=15;scale=w=960:h=540ffmpeg就会输出错误:Invalid filterchain containing an unlabelled output pad: "fps=fps=15;scale=w=960:h=540"说明多filter不能成功连接。需要对各个filter的输入和输出指定.因为默认buffersrc为in, buffersink为out将传入参数修正为:[i原创 2021-09-09 13:59:31 · 260 阅读 · 0 评论 -
[ffmpeg] 视频截取与视频拷贝的区别
视频截取:ffmpeg -i inputfile -ss 00:00:00 -t 视频时长 outputfile视频拷贝:ffmpeg -i inputfile -vcodec copyoutputfile区别:截取=> ffmpeg将内部pts进行重新设置拷贝=> ffmpeg只对数据包进行拷贝,内部信息不变...原创 2021-09-02 17:39:46 · 285 阅读 · 0 评论 -
[ffmpeg] [filter_fps] duplicate OR drop frame方式
在此举例一个duplicate frame的情况:该情况发生的原因,生成的第一帧的pts不是从0开始的。如果pts不正确,会导致fps filter根据pts进行相应帧的duplicate假如:输入的time_base=50,第一帧的pts为80。设置的帧率转换fps=1580/50 = 1.6秒 (ffmpeg认为这一帧需要显示到1.6秒)需要进行帧率转换, 并且输出的time_base为15,则1.6秒需要显示的帧数量15*1.6 = 24原来存在1帧,还需要duplicate 23帧原创 2021-09-02 17:28:01 · 760 阅读 · 0 评论 -
FFmpeg av_frame_free崩溃可能原因
如果通过av_frame_alloc创建的AVFrame,通过av_frame_free可以常常释放。但是如果创建了AVFrame之后,又对其中的data,extended_data,buf通过某种方式进行了内存分配。例如:av_frame_get_buffer,av_samples_alloc,av_image_alloc对其中的成员分配了空间。在释放AVFrame之前,需要首先通过av_freep等方法对内部成员进行释放,然后再进行AVFrame自身的释放。...原创 2021-08-25 19:00:14 · 1708 阅读 · 0 评论 -
ffmpeg demuxer/muxer/decoder/encoder词汇释义
词汇概述工具 功能简介 结构 定义文件 demuxer 对指定的容器URL进行解复用 AVInputFormat 在format中的***dec.c muxer 对数据复用到指定的容器URL AVOutputFormat 在format中的***enc.c decoder 对AVPacket进行解码 AVCodec 在codec中的***dec.c encoder 对AVPacket进行编码 AVCode原创 2021-08-12 09:46:19 · 547 阅读 · 0 评论 -
AVCodecContext中time_base确定
构建AVCodecContext时,一般通过以下几个步骤1、avcodec_alloc_context32、avcodec_parameters_to_context3、avcodec_open2前面两步的调用,只是做一些初始化的操作,最后一步avcodec_open2才能够对AVCodecContext中time_base进行数值的确定。在创建AVCodecContext之前,往往需要通过AVFormat进行文件打开及流信息查找操作。在流信息查找avformat_find_stream_inf原创 2021-08-11 10:37:12 · 752 阅读 · 0 评论 -
[FFmpeg]Application provided invalid, non monotonically increasing dts to muxer in stream
使用ffmpeg进行转码,如H265->H264, 直接使用ffmpeg转码海康/大华的录像文件,经常会出现标题的错误,而终止了转码。原因:文件中时间戳不是严格单调递增的,可能有其中的两帧的时间戳相同。只需要将复用器的flags标记位追加一个标记AVFMT_TS_NONSTRICT(不 严格单调递增)查看使用的复用器,将loglevel设置为info级别,会出现类似如下的信息:Output #0, mp4, to 'dahua_hevc_h264.mp4': Stream #0:0..原创 2021-07-19 16:15:46 · 1455 阅读 · 0 评论 -
ffmpeg doc/examples下单个example编译
ffmpeg版本:4.2.3下载下ffmpeg的源码之后,进行了源码编译。在学习时,基本上都要进行简单的基本功能测试;刚开始接触,可能需要参考example的调用顺序,了解一些基本功能。如果对example进行全部编译,通过源码根目录的README可以得知,在根目录下执行【make examples】命令。该命令会对lib库中文件进行一次编译,执行速度很慢。当进入doc/examples目录下直接执行make命令,同样也是对所有example进行编译。想要对单个example进行编原创 2021-07-02 13:40:53 · 1621 阅读 · 2 评论