自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(102)
  • 收藏
  • 关注

原创 ffmpeg 源码分析 解码流程

以ffmpeg 3.4 中的ffplay 来举例全局初始化av_register_allavformat_network_initAVFORMAT 设置过程avformat_alloc_contextavformat_open_input 打开流主要是demuxing 解复用avformat_find_stream_info 获取AVFORMAT中codec等信息codec 设置过程avcodec_alloc_context3avcodec_find...

2021-04-08 17:17:30 354

原创 ffmpeg 中 rtsp相关源码解析(五)

<<ffmpeg 中 rtsp相关源码解析(四)>>简单介绍了rtp包是通过ff_rtsp_fetch_packet来获取的我们更深入地问一个问题,那么对于vp8 、h264等音视频编解码标准,这些packet又是如何处理的呢?这边就涉及一个非常重要的结构体RTPDynamicProtocolHandler位于rtpdec.h文件中定义如下struct RTPDynamicProtocolHandler { const char *enc_name.

2021-02-09 19:34:49 674

原创 ffmpeg 中 rtsp相关源码解析(四)

最近在搞 ffmpeg RTP 向RTMP的转换,所以顺便把ffmpeg相关的源码看了一下没在rtpdec.c中找到找到 rtp demuxer的定义,却在rtsp.c中找到了,而且还找到了sdp demuxer下面给出定义ff_sdp_demuxer 和ff_rtp_demuxer 的定义 位于 rtsp.c中AVInputFormat ff_sdp_demuxer = { .name = "sdp", .long_name = NULL_...

2021-02-09 18:03:23 652 1

转载 webrtc 国内镜像编译

https://blog.csdn.net/freeabc/article/details/106451174

2021-02-09 13:47:11 398

原创 ffmpeg rtp转rtmp仿真

ffmpeg -re -i ~/test.webm -vcodec copy -an -f rtp rtp://233.233.233.223:11111 -vn -acodec copy -f rtp rtp://233.233.233.223.11112 > test.sdpffplay -protocol_whitelist "file,http,https,rtp,udp,tcp,tls" test.sdp

2021-02-03 21:09:33 634

原创 Mongodb cluster 实践(二) mongoshake

基于mongo-shake-v2.4.16 的docker镜像制作和容器部署脚本放在了https://github.com/lmxlmx/mongoShakeDocker需要注意的是我是基于mongo sharding集群的同步source和destination都是sharding集群mongo sharding 集群的部署方式位于https://github.com/lmxlmx/mongoCluster/tree/dev可用在做mongo 集群间同步时,需要重点注意colle.

2020-12-23 21:48:06 245

原创 github 加速骚操作

这篇文章是比较全的加速方法https://www.cnblogs.com/pogyang/p/13797430.html但是当用go mod等一些管理工具时,就差点意思,下面介绍一种骚操作用替换域名的方式将https://github.com替换成国内镜像域名git config --global url."https://github.com.cnpmjs.org".insteadOf https://github.com取消替换git config --global --unset

2020-12-18 14:48:07 677

原创 Are you trying to mount a directory onto a file (or vice-versa)? Mac OS docker 目录挂载问题

ERROR: for mysql Cannot start service mysql: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"rootfs_linux.go:58: mounting \\\"/host_mnt/Users/***/go/src/path/docker/mysql/.

2020-12-16 16:47:17 900

原创 go mod download 私有仓库依赖时返回 unknown revision v1.0.1问题处理

1、go设置私有仓库go env -w GOPRIVATE="YourRepositorySite/*"2、git config --global url."https://YourRepositorySite".insteadof "ssh:git@YourRepositorySite"将ssh地址切换成https3、设置记住密码git config --global credential.helper store4、git cloneYourRepositorySite 记住密.

2020-12-04 18:19:50 5260

原创 nats streaming 消息队列实践(一)

为了保证信息队列的可靠性,nats集群部署,并且在nats集群的基础上部署nats-streaming集群,确保消息不会被漏掉相关部署配置放在https://github.com/lmxlmx/nats-streaming-cluster相关配置参考:(1)https://hub.docker.com/_/nats-streaming/(2)https://docs.nats.io/nats-streaming-concepts/intro这些配置都是英文的,可能需要反复琢磨...

2020-11-30 11:04:09 701

原创 Mongodb cluster 实践(一)

为了保证文档存储的可靠性,参考他人的项目,完成了相关的实践相关的配置我放在了https://github.com/lmxlmx/mongoCluster/tree/devmongo的 replicate set 配置参考https://docs.mongodb.com/manual/tutorial/deploy-replica-set/mongo的 sharding 配置参考https://docs.mongodb.com/manual/tutorial/deploy-shard-cluste

2020-11-26 11:23:15 152

原创 alfg/nginx-rtmp 构建基于arm64平台的容器

我从alfg/docker-nginx-rtmpfork出来,利用qemu在amd64上构建了arm64的容器,这样就可以很方便地做跨平台的事了,具体请看代码:https://github.com/lmxlmx/arm64-docker-nginx-rtmp

2020-09-22 18:22:00 1098

原创 ffmpeg 中 rtsp相关源码解析(三)

下面解析AVOutputFormat ff_rtsp_muxer 结构体与AVInputFormat ff_rtsp_demuxer 结构体类似, ff_rtsp_muxer也是通过函数指针对外暴露一些具体操作。AVOutputFormat ff_rtsp_muxer = { .name = "rtsp", .long_name = NULL_IF_CONFIG_SMALL("RTSP output"), .priv_data_si

2020-09-11 23:08:48 328 1

原创 ffmpeg 中 rtsp相关源码解析(二)

下面先解析AVInputFormatff_rtsp_demuxer结构体ffmpeg中打开流的函数如下所示:int avformat_open_input(AVFormatContext **ps, const char *url, AVInputFormat *fmt, AVDictionary **options);函数第三个参数就是 AVInputFormat *fmt,当参数为非NULL时,则该参数由调用者指定,否则由ffmpeg自动获取。因此在读流时,这个参数是绕不开的。.

2020-09-09 21:10:36 636 1

原创 ffmpeg 中 rtsp相关源码解析(一)

ffmpeg中与rtsp协议相关的代码位于libavformat中libavformat/avformat.h文件中声明void av_register_all(void);函数定义位于libavformat/allformats.c中av_register_all调用 register_all函数,从而对多种muxer和demuxer进行注册static void register_all(void){ avcodec_register_all(); /* (de..

2020-09-07 22:15:22 1114 1

原创 ajax 跨域访问 No ‘Access-Control-Allow-Origin‘ header is present on the requested resource

现象:在ajax访问web后端获取信息时,报错如下Access to XMLHttpRequest at 'http://192.167.3.81:12345/stat/' from origin 'http://192.167.3.81:8888' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Orig.

2020-08-23 21:52:50 1097

转载 x86+nvidia 到 Arm+Atlas适配流程

目前流程已被我发布在华为开发者论坛上请参考博客:https://bbs.huaweicloud.com/blogs/194511

2020-08-18 13:44:04 571

原创 arm64v8/nginx 容器以root用户启动,nginx代理无法访问

现象:原因:查看nginx容器日志docker logs <nginx container>127.0.0.1 - - [12/Aug/2020:21:19:54 +0800] "GET /images/8873546/ccc4f102/img/1597238390098_0000000200.jpg HTTP/1.1" 403 153 "-" "Python-urllib/3.6" "-"2020/08/12 21:19:54 [error] 28#28: *651 open

2020-08-12 21:28:21 1208

原创 庆祝博客访问量突破10万+

博客点击量突破了10万,算是一个小的里程碑,说明一些问题的解决方法对同学们还是有点作用的。给自己加油鼓励一下,后面尽量出一些精品博客,多一些营养

2020-07-07 15:10:41 171

原创 aggregate std::ostringstream os has incomplete type and cannot be defined

aggregate 'std::ostringstream os' has incomplete type and cannot be defined编译代码时,对于iostream类型,可能会出现类似的问题这时我们只需要在添加头文件引用 #include <sstream>就可以了原因:iosfwd中ostringstream的定义如下:typedef basic_ostringstream<char> ostringstream;而basic_o...

2020-06-19 14:23:49 7496

转载 深入浅出Yolo系列之Yolov3&Yolov4核心基础知识完整讲解

转载团队里大神的博客,扩大一下影响力,同时也留着学习下https://blog.csdn.net/nan355655600/article/details/106246625

2020-06-17 19:48:23 871

原创 通过Launchpad查找PPA仓库

我们通常会通过查找安装命令得知一些仓库名,我们还可以通过Ubuntu Launchpad网站查询更多信息首先登录https://launchpad.net/然后搜索自己关心的ppa,例如我们搜索得到了ppa:jonathonf/ffmpeg-4的信息,这样我们就可以直接查找自己关心的ppa了...

2020-06-09 20:21:19 1099 1

原创 PPA 安装 ffmpeg

对于ubuntu1604 apt 安装ffmpeg 默认版本是2.8需要高版本ffmpeg,但又不想从源码编译ffmpeg时,就需要使用PPA我们以FFmpeg为例sudo add-apt-repository ppa:jonathonf/ffmpeg-4sudo apt-get updatesudo apt-get install ffmpeg这是安装ffmpeg4的命令,当我们想要安装ffmpeg3时,我们谷歌百度了一堆答案,得到了ppa:jonathonf/ffmpeg-3,

2020-06-09 20:08:48 797

原创 opencv with ffmpeg 代码解析(三)

前面两篇博文介绍到了CvCapture_FFMPEG,这个类的声明与定义都在cap_ffmpeg_impl.hpp这个头文件里在CvCapture_FFMPEG众多方法中,bool open( const char* filename );void close();bool grabFrame();bool retrieveFrame(int, unsigned char** data, int* step, int* width, int* height, int* cn);bool .

2020-06-08 20:50:30 2798

原创 opencv with ffmpeg 代码解析(二)

1、代码入口看opencv的代码,最好的切入点就是对外的头文件 opencv.hppinclude 目录下仅有opencv.hpp文件所有的video read和write相关代码都在modules/videoio这个模块里2、IVideoCapture IVideoWriter 实现在videoio.hpp里声明了VideoCapture VideoWriterIVideoCaptureIVideoWriter 四种类其中IVideoCaptureIVideoW...

2020-06-06 19:28:29 864

原创 opencv with ffmpeg 代码解析(一)

有些同学访问github的速度受限,可以通过gitee快速访问到自己想要的开源库,以下为gitee 上的opencv库https://gitee.com/mirrors/opencv如图为opencv项目下文件结构opencv下共有9个文件夹3rdparty 第三方库目录,opencv使用到的第三方库的配置和源码apps opencv可执行app代码cmake opencv cmake 过程中的通用配置data ...

2020-06-06 16:10:45 367

原创 opencv 获取rtsp原始码流代码

opencv不仅可以获取解码后的图片数据,还可以获取未经解码的原始码流数据, 这样为使用其他硬解码器提供方便在编译opencv cmake时需要指定 -D WITH_FFMPEG=ONpython 代码如下,需要指定CAP_PROP_FORMAT 为 -1 指定关闭软解码功能需要说明的是,获取的原始码流数据需要通过视频流解码器才能获取到图片数据import cv2rtsp_url = "rtsp://192.167.15.41/g2.mp4"logger.info(rtsp_url)

2020-06-06 14:44:14 1451 1

原创 做视频流服务的人居然不懂ffmpeg

最近在跟某厂对接视频流服务,我使用ffmpeg读取帧,5路成功3失败2跟对方工程师讨论,问了一圈,居然连个懂ffmpeg的都没有,做视频流服务的不用懂ffmpeg吗?我真的落伍了吗?

2020-05-26 15:24:19 221

原创 python3.7 get-pip.py 执行失败,网络链接很慢问题解决

安装python3.7已有文章介绍,详情请看 https://blog.csdn.net/bz0446/article/details/105500585但是安装pip3.7时,会有网络链接超时问题,主要是get-pip.py使用默认国外源国外源速度比较慢可以指定使用国内源命令如下python get-pip.py -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com...

2020-05-12 16:59:25 5374

原创 一张图片转换为视频的命令

ffmpeg -f image2 -loop 1 -i 1.jpg -vcodec libx264 -r 25 -s 1920*1080 -pix_fmt yuvj420p -profile:v baseline -level 3.0 -t 10 lmxtest2020.mp4

2020-03-24 16:25:08 855

原创 ubuntu18.04.4 for ARM 安装 docker-compose

现有预编译好的二进制文件docker-compose都是针对x86的,对于ARM版ubuntu,尚没有编译好的docker-compose可供下载,因此需要以其他方式安装,利用pip就可以安装pip install docker-compose...

2020-03-03 11:41:07 2994

原创 ubuntu官网镜像下载太慢,变通加速方法

ubuntu官网下载速度较慢,而且容易下载断链,以下提供两种加速方法1、利用国内镜像源下载ubuntu最新版本的镜像ubuntu官网server版官网下载地址https://ubuntu.com/download/server/,但是一般下载速度有点慢可通过国内镜像源加速下载,以中科大源下载18.04为例https://mirrors.ustc.edu.cn/ubuntu-cdim...

2020-03-03 11:09:30 12714 2

原创 Atlas300驱动安装失败,提示dkms install failed 以及 driver_ko_install failed

Atlas300驱动和ddk安装参考《Atlas 300 AI加速卡 用户指南 (型号 3000) 02.pdf》、《Atlas 300 AI加速卡 软件安装指南 (run包) (型号 3000) 02.pdf》、《Atlas 300 AI加速卡 DDK安装指南 (Ubuntu, ARM) (型号 3000) 01.pdf》问题ubuntu18.04.4 环境下./npu_ubun...

2020-03-03 10:48:01 3026 1

原创 docker 权限问题 Got permission denied while trying to connect to the Docker daemon socket at 。。。

在用户权限下docker 命令需要 sudo 否则出现以下问题通过将用户添加到docker用户组可以将sudo去掉,命令如下sudo groupadd docker #添加docker用户组 sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中 newgrp docker #更新用户组 ...

2020-02-27 17:59:57 120619 53

原创 基于arm64 docker的华为Atlas软件运行,Atlas device映射

对于Atlas软件的编译环境的构建方法已在我之前的博客中介绍了https://blog.csdn.net/u011337602/article/details/103909620仅仅是编译还不能满足我们的需求,因为我们还希望能将软件完整部署到华为泰山服务器上,但是有一个问题就是docker如何访问atlas的硬件设备。对于atlas来说,驱动安装成功后,会在服务器/dev目录下找到...

2020-01-09 17:27:17 1415

原创 基于arm64v8/ubuntu:18.04搭建华为ATLAS软件编译运行环境

之前介绍了x86上搭建arm64代码编译环境的方法具体如下https://blog.csdn.net/u011337602/article/details/103810657如果还需要做华为ATLAS的代码工程编译,还需要在容器内添加ATLAS host侧lib库1、获取Atlas300-ARM-Ubuntu18.04-V2.0.0.102.020.zip包,可以在华为官网上找到,不...

2020-01-09 15:52:09 1335

原创 在x86服务器上 搭建基于docker的arm64程序编译和运行环境

docker 镜像:multiarch/qemu-user-static:registerarm64v8/ubuntu:18.04必要的组件:qemuhttps://github.com/multiarch/qemu-user-static 下载qemu-aarch64-static通常在x86环境上运行arm64的docker是会报错的:报错信息如下st...

2020-01-02 20:27:29 6568 1

原创 ffmpeg两个视频拼接

input文件 file '1.mp4' file '2.mp4'命令 ffmpeg -f concat -i input -c copy total.mp4

2019-12-02 17:24:39 2696

原创 图片文件夹压缩转存

对于人工智能项目,有时会保存处理图片,为了避免长时间保存图片导致系统硬盘爆满,需要对保存的图片做压缩转存功能import tarfileimport shutildef pack_remove_dirs(tardirs_list): try: logger.info("Folders will be packed, compressed and removed")...

2019-10-31 16:48:57 316 1

原创 C++循环创建文件所在文件夹

bool ImgprocTask::CheckPathExist(std::string path){ if(access(path.c_str(),0) == -1) { return false; } return true;}void ImgprocTask::CreateDir(std::string filepath){ ...

2019-10-22 17:56:32 594

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除