摘要: ​ 前言 不知道是处于版权收费问题还是什么原因,H265现在也并没有非常广泛的被普及。将h265数据合成AVI的资料现在在网上也基本上没有。使用格式化工厂工具将h265数据封装成AVI格式,发现它在封装的时候其实是对数据进行了一个装换,转成了FMP4格式。 正文 因为是在嵌入式设备中使用,所以没有测 阅读全文
posted @ 2023-04-20 19:36 liwen01 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 前言 H.264是压缩过的数据,PCM是原始数据,MP4是一种视频封装格式。实际H.264与PCM不能直接合成MP4格式,因为音频格式不对。这里需要中间对音频做一次压缩处理。基本流程为:将PCM音频数据压缩成AAC格式音频数据,再将AAC与H.264合成MP4视频格式。 (一)PCM压缩为AAC格式 阅读全文
posted @ 2023-04-20 19:36 liwen01 阅读(677) 评论(0) 推荐(0) 编辑
摘要: 前言: RTSP,RTCP,RTP一般是一起使用,在FFmpeg和live555这些库中,它们为了更好的适用性,所以实现起来非常复杂,直接查看FFmpeg和Live555源代码来熟悉这些协议非常吃力,这里将它们独立出来实现,以便更好的理解协议。本文主要介绍RTSP,RTCP,RTP加载AAC音频流。 阅读全文
posted @ 2023-04-20 19:36 liwen01 阅读(252) 评论(0) 推荐(0) 编辑
摘要: ​ 前言 拖了很久的AVI音视频封装实例,花了一天时间终于调完了,兼容性不是太好,但作为参考学习使用应该没有问题。 RIFF和AVI以及WAV格式,可以参考前面的一些文章。这里详细介绍将一个H264视频流和一个2通道PCM音频流封装成一个AVI格式的视频文件。测试过可以在暴风,迅雷和VLC播放器上正 阅读全文
posted @ 2023-04-20 19:36 liwen01 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 前言: RTSP,RTCP,RTP一般是一起使用,在FFmpeg和live555这些库中,它们为了更好的适用性,所以实现起来非常复杂,直接查看FFmpeg和Live555源代码来熟悉这些协议非常吃力,这里将它们独立出来实现,以便更好的理解协议。本文主要介绍RTSP,RTCP,RTP加载H264数据流 阅读全文
posted @ 2023-04-20 19:35 liwen01 阅读(326) 评论(0) 推荐(0) 编辑
摘要: ​ 前言: 在linux系统进程间通信的方式有消息,消息队列,管道,内存映射,套接字等多种方式。 在Android系统上进行进程间通信主要是使用Binder,其它的还有共享内存,管道,RPC和Unix Domain等方式。 但是,在linux中常用的消息队列,在Android等系统上并不能直接的使用 阅读全文
posted @ 2023-04-20 19:35 liwen01 阅读(138) 评论(0) 推荐(0) 编辑
摘要: ​ 1.前言: 网上已经有很多关于ONVIF开发的资料,这里概括介绍一下ONVIF协议以及介绍一下我自己在开发ONVIF网络摄像头的一些流程和经验,做个开发记录和经验总结,以备将来查看,也可供他人参考。如有错误,欢迎你的留言纠正,让我们共同成长。系列博客包括: 《ONVIF网络摄像头(IPC)客户端 阅读全文
posted @ 2023-04-20 19:35 liwen01 阅读(454) 评论(0) 推荐(0) 编辑
摘要: 前言: 网上对于RTSP协议客户端的表述和实现非常不清晰,在实际使用中,FFMPEG和live555这些软件已经实现了RTSP客户端和服务端的所有功能,但是它们并没有将RTSP协议独立出来,通过看live555或是FFMPEG这些第三方库的源码来学习rtsp协议还是非常吃力。这里根据协议自己现实一个 阅读全文
posted @ 2023-04-20 19:35 liwen01 阅读(1066) 评论(0) 推荐(0) 编辑
摘要: ​ 前言 在TCP网络编程模型中,无论是客户端还是服务端,在网络编程的过程中都需要判断连接的对方网络状态是否正常。在linux系统中,有很多种方式可以判断连接的对方网络是否已经断开。 通过错误码和信号判断 通过select系统函数判断 通过TCP_INFO套接字选项判断 通过SO_KEEPALIVE 阅读全文
posted @ 2023-04-20 19:34 liwen01 阅读(2118) 评论(0) 推荐(0) 编辑
摘要: 前言 UDP协议是User Datagram Protocol的缩写,它是无连接,不可靠的网络协议。一般使用它进行实时性数据的传输,主要是因为它快,但因为它是不可靠的一种传输协议,所以不可避免的会出现丢包现象。本文就具体讨论导致UDP传输数据包丢失的原因以及一些基本的规避方法: 路由器转发造成的数据 阅读全文
posted @ 2023-04-20 19:34 liwen01 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 前言: 127.0.0.1它是一个私有IP,代表的就是你的本机环回地址,其实本质上是绑定在虚拟网卡loopback上的IP。 在实际应用中,有遇到在使用本地回环做进程间通讯的时候程序阻塞的情况。比如下面代码 (一)本地回环: 客户端数据收发程序: static int send_recv(char 阅读全文
posted @ 2023-04-20 19:34 liwen01 阅读(104) 评论(0) 推荐(0) 编辑
摘要: ​ 前言: 在linux系统关于流量统计,已经有开源的工具,比如nethogs,nload和iptraf。它们适合我们在PC上直接监控某台设备的流量情况,但并不适合我们应用到自己的程序中去。 如果要在自己代码中实现流量的统计,可以有下面几种方法:统计应用层流量;使用tcpdump抓取每一包数据进行统 阅读全文
posted @ 2023-04-20 19:34 liwen01 阅读(538) 评论(0) 推荐(0) 编辑
摘要: ​目录前言:说明:功能介绍:设计思路:详细设计:QT界面设计:代码实现:注意事项:(一)QT运行慢问题(二)QT图层隐藏问题(三)鼠标问题(四)字体问题(五)主界面图案(六)鼠标作用域问题:工程获取 前言: 随着4G/5G的发展,无线带宽不断的扩大,数据流量费用不断的降低,使得现在的实时网络视频和视 阅读全文
posted @ 2023-04-20 19:33 liwen01 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 前言: 在海思HI3520DV300上调试QT5.9.0有一小段时间了,这里将遇到的比较典型的问题做一个记录,以备后续查询,也可给同行一个参考。本人只使用过QT5.9.0这一个版本,如有描述错误欢迎指出。 说明: QT版本:qt-everywhere-opensource-src-5.9.0 qt- 阅读全文
posted @ 2023-04-20 19:33 liwen01 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 前言 嵌入式linux设备要进行软件升级有很种多方式方法,总的来说可以分为本地升级和远程升级。 本地升级包括升级工具升级,存储介质升级等,远程升级是指通过网络进行程序升级。 这里介绍一种同时至此本地和远程升级的方法,以供参考。 (一)本地升级: (1)升级工具升级 现在的升级工具有很多,不同的芯片支 阅读全文
posted @ 2023-04-20 19:32 liwen01 阅读(192) 评论(0) 推荐(0) 编辑
摘要: ​ 前言 在实际应用中有遇到过设备放置一段时间后设备不能启动的问题,uboot 完全没有响应,类似于flash中的数据被擦洗掉一样。 网上有介绍说是nandflash 不稳定,高温或是静电会导致nand flash 的比特位反转的问题,反转的少了,controller内部的ECC会将数据纠正,反转的 阅读全文
posted @ 2023-04-20 19:32 liwen01 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 前言 基本过程为:uboot 启动后,通过命令将U盘的的文件读取到内存中,再通过uboot 的flash 写入命令将读取到内存中的升级文件写入到flash的固定位置。 (一)usb常用命令 uboot一般支持对usb的操作命令有:start,reset,stop,tree,info,storage, 阅读全文
posted @ 2023-04-20 19:32 liwen01 阅读(377) 评论(0) 推荐(0) 编辑
摘要: 前言 在嵌入式linux设备中,uboot的最终目的就是启动kernel。对于uboot而言,没有人把它引导起来,所以uboot首先需要把自己加载起来,然后再去引导kernel的启动,这也就可以大致的分为Uboot启动的第一阶段和第二阶段。 (一)start.S第一阶段启动总结 在海思hi3251a 阅读全文
posted @ 2023-04-20 19:31 liwen01 阅读(165) 评论(0) 推荐(0) 编辑