lcyw
码龄15年
  • 455,521
    被访问
  • 112
    原创
  • 5,270
    排名
  • 2,059
    粉丝
关注
提问 私信
  • 目前就职: 百度
  • 加入CSDN时间: 2007-07-26
博客简介:

machh的专栏

查看详细资料
  • 5
    领奖
    总分 1,138 当月 50
个人成就
  • 百度研发工程师
  • 博客专家认证
  • 获得208次点赞
  • 内容获得69次评论
  • 获得429次收藏
创作历程
  • 5篇
    2022年
  • 24篇
    2021年
  • 9篇
    2020年
  • 13篇
    2019年
  • 8篇
    2018年
  • 10篇
    2017年
  • 31篇
    2016年
  • 9篇
    2015年
  • 1篇
    2014年
  • 5篇
    2011年
  • 1篇
    2010年
  • 1篇
    2008年
成就勋章
TA的专栏
  • 智能安防系统开发
    付费
    38篇
  • ffmpeg实战进阶
    付费
    10篇
  • 流媒体
    23篇
  • 多媒体
    7篇
  • 音视频编解码
    30篇
  • 直播相关
    4篇
  • 视频监控
    12篇
  • GB/T28181
    12篇
  • Docker/K8S
    1篇
  • webrtc
    2篇
  • 服务器后端
    8篇
  • C++
    4篇
  • GO
    1篇
  • rust
  • Linux
    1篇
  • opencv
    3篇
  • 图像质量评价
    1篇
  • VC/MFC
    6篇
  • 树莓派
    6篇
  • andriod
    5篇
  • 计算机系统
    5篇
TA的推广
兴趣领域 设置
  • 大数据
    redis
  • 后端
    架构
  • 人工智能
    opencv计算机视觉
  • 服务器
    linux
联系方式

欢迎关注微信公众号:
   音视频开发训练营公众号

音视频开发训练营QQ群:

   576912843
  • 最近
  • 文章
  • 资源
  • 问答
  • 视频
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

MAC 卸载软件提示已锁定

最近清理电脑上的无用软件,发现卸载软件 报"不能完成此操作,xxx已锁定",死活卸载不掉,这里记录一下,就当笔记了。看下面图标,就是上面带一把锁的 标识 。网上查了下,普遍都说 右键查看简介,然后发现已锁定后,需要使用命令行删除。sudo rm -rf xxx.app发现,并不好使。 报错rm: FortiClient.app/Contents: Operation not permitted错误提示,这个软件的权限 非常高,常规方法还真的卸载不掉 ~~~~~所以,先要找到这个软件,修
原创
发布博客 2022.05.13 ·
152 阅读 ·
0 点赞 ·
0 评论

音视频编解码

PCM基础知识PCM是指未经过压缩的原始声音脉冲信号数据,它主要通过采样率、采样格式(比如每个采样点是8位、16位、32位等)、声道数来描述。在FFmpeg中有两种表示PCM数据包的模式,分别是planer和packed模式,那么它们有什么区别呢?其中packed又叫做交错模式,而planer又叫平面模式,所谓交错或平面就是不同声道的声音信号排列储存的方式,例如对于一个双声道的PCM数据来说, 用packed模式表示是这样子的:用L表示左声道数据,用R表示右声道数据LRLRLRLRLRLRLRLR
原创
发布博客 2022.04.20 ·
1246 阅读 ·
0 点赞 ·
0 评论

win10下使用msys+vs2019编译ffmpeg源码

win10下使用msys+vs2019编译ffmpeg源码安装msys2安装MSYS2编译FFMPEG所需的依赖安装GCC启动msys2编译ffmpeg编写测试代码安装msys2去MSYS2官网下载MSYS2工具安装MSYS2编译FFMPEG所需的依赖依次安装以下工具(安装的过程中可能出错,可能原因是没有安装最新的MSYS2工具,比如会提示key过期等,我在安装的过程中遇到了很多问题,但是忘记记录下来了。这个需要朋友自己去网上查找资料了)pacman -S nasm #汇编工具pacman
原创
发布博客 2022.04.18 ·
2462 阅读 ·
0 点赞 ·
0 评论

git源码安装最新版本

官网下载源码包来安装,最新源码包下载地址:https://git-scm.com/downloadNote:不要用yum安装git, yum源安装git最新版本是1.8.3,该版本太老,之后用git commit 有可能会报错:git: ‘interpret-trailers’ is not a git command. See ‘git --help’.cannot insert change-id line in .git/COMMIT_EDITMSG必须安装更新版本,比如git-2.12.2
原创
发布博客 2022.04.08 ·
70 阅读 ·
0 点赞 ·
0 评论

【git】git: ‘interpret-trailers’ is not a git command. See ‘git --help’

cents 7.6系统. yum源安装git最新版本是1.8.3报错:git: 'interpret-trailers' is not a git command. See 'git --help'.cannot insert change-id line in .git/COMMIT_EDITMSG解决:git add xxxgit commit -m "xxx"然后修改vim .git/hooks/commit-msg#if test -n "${reviewurl}" ; th
原创
发布博客 2022.04.08 ·
1086 阅读 ·
0 点赞 ·
0 评论

ffmpeg 音频相关命令

使用rtsp协议推送g711音频ffmpeg -re -i test.flv -vcodec copy -acodec pcm_alaw -f alaw -ac 1 -ar 8000 -f rtsp -rtsp_transport tcp -y "rtsp://192.168.1.196/live/stream" 提取mp4文件音频,并保存pcm为文件ffmpeg -y -i oceans.mp4 -vn -acodec pcm_s16le -f s16le -ac 1 -ar 8000
原创
发布博客 2021.11.29 ·
109 阅读 ·
0 点赞 ·
0 评论

直播HLS协议

HTTP Live Streaming(简称HLS)是一个由苹果公司提出的基于HTTP的流媒体网络传输协议。​是苹果公司QuickTime X和iPhone软件系统的一部分。 它的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率 .在开始一个流媒体会话时,客户端会下载一个包含元数据的extended M3U (m3u8)文件,用于寻找可用的媒体流。HLS只请求基本的
原创
发布博客 2021.10.01 ·
192 阅读 ·
0 点赞 ·
0 评论

brpc理解

我们只有三个用户类:Server、Channel和Controller,分别对应server端,client端和调整参数集合。不需要推敲诸如“Client怎么初始化”,“XXXManager有什么用”,“Context和Controller的关系是什么”之类的问题要做的很简单:建服务就#include <baidu/rpc/server.h>, 并按照注释或例子使用server对象访问服务就#include <baidu/rpc/channel.h>,并按照注释或例子使用Ch
原创
发布博客 2021.09.26 ·
115 阅读 ·
0 点赞 ·
0 评论

OpenCV视频质量诊断----视频遮挡诊断

视频遮挡诊断把彩色图像二值化,偏黑的部分为前景,其他部分为背景。对前景进行连通区域检测,求得最大连通区域面积。该面积整幅图像面积的比较即为遮挡率c++语言实现//视频遮挡诊断double occlusion(const cv::Mat &src , double meanValue) { bool IsCovered = false; Mat gray; cvtColor(src, gray, CV_BGR2GRAY); Mat binary; threshold(gr
原创
发布博客 2021.09.24 ·
524 阅读 ·
0 点赞 ·
0 评论

OpenCV视频质量检测--清晰度检测

void img_to_gray(const char * src) { cv::Mat image = cv::imread(src); if (image.empty()) { return ; } cv::Mat gray_img; cv::cvtColor(image,gray_img,COLOR_BGR2GRAY); cv::imwrite("gray.png",gray_img); //LOG_INFO("convert
原创
发布博客 2021.09.24 ·
296 阅读 ·
0 点赞 ·
0 评论

Docker容器内使用gdb

其中gdb在进行进程debug时,会报错:(gdb) attach 30721Attaching to process 30721ptrace: Operation not permitted.原因就是因为ptrace被Docker默认禁止的问题。考虑到应用分析的需要,可以有以下几种方法解决:1、关闭seccompdocker run --security-opt seccomp=unconfined2、采用超级权限模式docker run --privileged3、仅开放ptrac
原创
发布博客 2021.09.07 ·
420 阅读 ·
1 点赞 ·
0 评论

ffmpeg常用命令(二)

- ffmpeg截图ffmpeg -i rtmp://192.168.1.16:8935/app/ -loglevel quiet -y -f mjpeg -t 0.001 test.jpgfmpeg 改变视频分辨率ffmpeg -i input.avi -vf scale=320:240 output.avi -hide_banner- 使用rtp方式推流h264推流ffmpeg -re -i "test.mp4" -vcodec h264 -acodec aac -f rtp_mpeg
原创
发布博客 2021.08.02 ·
111 阅读 ·
0 点赞 ·
0 评论

GB28181之SIP协议

[RFC3261]SIP概括会话初始协议(Session Initiation Protocal, SIP)。SIP是一个应用层的信令控制协议,主要目的是在 IP 网络中建立、修改和释放多媒体会话的应用层协议。其主要的应用包括但不局限于语音、消息、视频、呼叫控制等。会话的参与者可以通过组播(multicast)、网状单播(unicast)或两者的混合体进行通信。1. 什么是Proxy模式?按照RFC3261中的定义,Proxy服务器是一个中间的实体,它本身即作为客户端也作为服务端,为其他客户端提供请
原创
发布博客 2021.06.18 ·
977 阅读 ·
0 点赞 ·
1 评论

GB28181的NAT穿透

国标gb28181内网穿透因为我们这个项目是内网到外网,再从外网到内网,有内网穿透的情况,内网映射到外网的端口会发生改变,所以要有一套机制来做穿透,因为国标是基于sip协议的,sip下做内网穿透的事rport机制,如果发送的请求不带rport标识就是不启用这套机制,所以在外网到内网时会出问题。因为内网的头在发送信息到公网上会经过一个网关,网关会使用nat协议转换内网的端口,这个映射到公网上的端口可能和内网的一致,也有可能不一致!而刚好在我方的网络里这个端口恰巧一致了!而对方的不一致。https://bl
原创
发布博客 2021.05.18 ·
1349 阅读 ·
0 点赞 ·
0 评论

大厂音视频职位面试题目--今日头条

作为一名IT从业者,不管你是否有跳槽的计划。时不时的去参加一些有针对性的招聘面试,对个人也是有好处的,一方面可以了解大厂有哪些的热招职位,这些热招的职位往往说明社会上相关行业发展热度,资本投入的方向,也就代表着更多的机遇机会。此外,在和面试官互动的过程中也能了解一些大厂技术架构方面的信息,相关的技术栈,管中窥豹,对开阔自己视野不无裨益。 最直接的,参加技术笔试/面试相当于给自己一次赶考机会,是对自己技术能力的一次检验,即使自己能力达不到面试职位的要求,也可以回家复盘,查...
原创
发布博客 2021.04.27 ·
516 阅读 ·
1 点赞 ·
0 评论

音视频、编解码相关电子书、小工具,打包奉送!

编解码相关流媒体协议标题调试工具扫码关注 【音视频开发训练营】公众号,后台回复8899获取网盘链接。
原创
发布博客 2021.04.25 ·
156 阅读 ·
0 点赞 ·
0 评论

ffmpeg AVFrame 转 cv::Mat

//AVFrame 转 cv::mat cv::Mat frame_to_mat(const AVFrame * frame) { int width = frame->width; int height = frame->height; cv::Mat image(height, width, CV_8UC3); int cvLinesizes[1]; cvLinesizes[0] = image.step1(); if( NULL ==
原创
发布博客 2021.04.16 ·
357 阅读 ·
0 点赞 ·
0 评论

ffmpeg 错误码

ffmpeg 中的错误码定义在如下文件中:#include <libavutil/error.h>使用如下的定义方式,#define FFERRTAG(a, b, c, d) (-(int)MKTAG(a, b, c, d))#define AVERROR_BUG FFERRTAG( 'B','U','G','!') ///< Internal bug, also see AVERROR_BUG2#define AVERROR_EOF
原创
发布博客 2021.04.16 ·
395 阅读 ·
0 点赞 ·
0 评论

H264编码profile & level控制

H.264有四种画质级别,分别是baseline, extended, main, high:从低到高分别为:Baseline、Main、High。Baseline Profile:基本画质。支持I/P 帧,只支持无交错(Progressive)和CAVLC;Extended profile:进阶画质。支持I/P/B/SP/SI 帧,只支持无交错(Progressive)和CAVLC;(用的少)Main profile:主流画质。提供I/P/B 帧,支持无交错(Progressive)和交
原创
发布博客 2021.03.25 ·
123 阅读 ·
0 点赞 ·
0 评论

【C++】 map和vector的erase函数说明

一、std::map erase 函数声明这里首先要注意,C++98 和c++11 针对map的erase函数有不同的函数原型,这往往是出现问题的关键所在。参考如下链接:http://www.cplusplus.com/reference/map/map/erase/C++98(1) void erase (iterator position);(2) size_type erase (const key_type& k);(3) void erase (iterator first,
原创
发布博客 2021.03.12 ·
150 阅读 ·
0 点赞 ·
0 评论
加载更多