1. FMP4不支持直播

    因为在直播中,H5侧目前主要是B站的 flv.js 这个项目来做FLV的直播,但是H5原生支持MP4,而且SRS等均只输出简单的FLV视频。因此可以考虑尝试使用直接输出MP4的方法来实现,这样就可以跳过很多控制,直接原生支持,结果验证失败了。 测试前思考想要输出MP4,势必先要了解MP4的格式,然后再remux,CSDN的这篇博客是我的主要参考 软编码Flv 到Mp4 容器 作者主要是从事类似 f …

    技术 继续阅读

  2. 从海康28181的PS流解析H264的补充

    前文 《简单解析海康PS流获取H264》 针对海康摄像头的PS流解析做了简单处理,基本逻辑是正确的,但最近几个摄像头出现了一些奇怪的问题,需要针对相关现象进行查询。 RTP传输层项目中为了可靠处理且因其他原因使用了TCP来传输28181的RTP数据,根据 rfc4571 记录,使用TCP传输的时候只需要在RTP包之前打上2个字节的长度,用来控制,毕竟TCP是流式传输,只能靠长度字段进行包的区分。 …

    技术 继续阅读

  3. 使用VS开发Linux程序

    VisualStudio的新版本已经开始支持远程编译调试Linux了,我安装了VS2017,尝试在Windows上写了一个Linux服务程序,非常方便。 基本原理能支持Linux开发的也只是在最新的版本中才行,好像应该是2015起。当然在安装VS的时候必须勾选跨平台下的Linux,没有安装的打开安装器可以添加补充上。 在创建项目的时候,需要选择一个Linux服务器,一般都是通过SSH连接的,然后V …

    技术 继续阅读

  4. Linux配置添加FTP用户

    Linux下最常用的FTP软件是vsftpd,使用起来非常简单,功能也很强大,以下记录下最简单的使用配置方法。 服务安装vsftpd是常用软件,因此一般安装也不用费时费力的去源码安装,直接在仓库中进行安装即可,比如在红帽系的发行版上,直接通过YUM安装,如 yum install vsftpd 系统会自动安装成功。安装完成之后,默认情况下,其配置文件在 /etc/vsfptd 目录下。 服务配置v …

    技术 继续阅读

  5. BAT脚本自动获取管理员权限等功能

    偶尔可能会用到Windows下批处理脚本,虽然对BAT脚本使用的少,但是确实很有用,在此记录下一些常用的功能实现代码,长期更新。 自动获取管理员权限在Windows上很多操作需要管理员权限,比如创建服务等。但是在批处理在需要管理器权限的时候,一般要求操作人员切换到管理器 CMD 或 PS 下,进行执行,比较不方便,下面的脚本可以实现自动获取管理员权限,只需要操作人员确认即可 @echo off%1 …

    技术 继续阅读

  6. C/C++执行命令并获取输出结果

    在C/C++中执行指定命令是比较常见的功能,但是其输出对调用者来讲是非常重要的参考,亦或者通过获知调用程序运行成功与否做下一步处理。 Win32平台方法Win32平台上的程序员貌似总不是对返回码那么感兴趣,不像Linux程序员随随便便在脚本都是 $?,但事实上确实是有专门的API提供了方法,而且总体上API功能很强大,也使用起来较复杂,此处只以最简单的功能作为介绍,读者可自行参考修改。 int R …

    技术 继续阅读

  7. AS无法连接真机的解决方案

    调试Android程序的时候,如果需要摄像头了,虚拟机就用不上了,需要连接真机。虽然连接真机很容易,但是后续因为Win10系统原因造成又无法连接成功,因此针对连接问题总结其解决方案。 基本方法一般来说,当我们将手机插入电脑后,如果之前没安装过驱动,则基本是会出现设备管理器有不可识别的设备。这种情况下(或从未安装任何驱动的情况下)使用下面的方法安装驱动即可。 在AS上打开SDK管理器,选择 SDK …

    技术 继续阅读

  8. JAR使用JNA并打包dll

    搞Java的同学应该都清楚,Java与C++交互方式是通过DLL,使用JNI技术,也就是现在Android上最常用的方式,但其实现在有更高层次的封装了,那就是JNA方式。虽然JNA使用很简单,但是发布却比较麻烦,特别是参考网上的文章基本很少有正确的方法,本文将详述正确的方法。 JNA的使用JNA(Java Native Access)框架是一个开源的Java框架,是SUN公司主导开发的,建立在经典 …

    技术 继续阅读

  9. AndroidStudio编译JNI

    以前使用其他IDE做JNI的时候还比较麻烦,特别是JNI和Java的操作是分开的,现在使用Android Studio做特别方便,还可以直接打包成 aar 格式对外提供。因为项目是对外提供开发包方式的,并不是自身App模式,因此打算直接创建一个简单的Android工程作为调用测试,再单独添加模块作为封装库。 创建工程Android创建工程很简单,随便创建一个,然后基本项目目录就会出现 app 模块 …

    技术 继续阅读

  10. 部署AppRTC服务

    AppRTC是WebRTC视频通话的服务程序,一般可以将其作为参考实现,搭建AppRTC服务受限于很多条件,并不是太容易。在参考了官方操作和大量的博客之后,根据自己操作实践排除了很多网络博客上的错误方法,终于部署成功了一套环境。测试环境为阿里云的CentOS 7服务器,带公网IP和域名。 部署前的必要条件部署前,首先要明确的是必要的依赖环境,必须满足以下需求: 公网服务器,如果非公网就只能在局域 …

    技术 继续阅读