C#中读取流媒体视频文件转H.264具体实现方法
现在有越来越多的人在使用C#语言做编程,但我发现好像用C#做音视频流媒体开发的比较少。我们的libEasyScreenLive目前支持Windows,Android平台,通过EasyScreenLive我们就可以避免接触到稍显复杂的音视频源采集,编码和流媒体推送以及RTSP/RTP/RTCP/RTMP服务流程。
本文给大家介绍一下C#中读取流媒体视频文件转H.264具体实现方法。
private void Test(){byte[] buffer;//c#文件流读文件 using (FileStream fsRead = new FileStream(videoName, FileMode.Open, FileAccess.Read)){int fsLen = (int)fsRead.Length;buffer = new byte[fsLen];int r = fsRead.Read(buffer, 0, buffer.Length);} PsToH264(buffer);}public void PsToH264(byte[] buffer){_publicByte = copybyte(_publicByte, buffer);int i = 0;int BANum = 0;int startIndex = 0;if (buffer == null || buffer.Length < 5){return;}int bytes = _publicByte.Length - 4;while (i < bytes){if (_publicByte[i] == 0x00 && _publicByte[i + 1] == 0x00 && _publicByte[i + 2] == 0x01 && _publicByte[i + 3] == 0xBA){BANum++;if (BANum == 1){startIndex = i;}if (BANum == 2){break;}}i++;}if (BANum == 2){int esNum = i - startIndex;byte[] psByte = new byte[esNum];Array.Copy(_publicByte, startIndex, psByte, 0, esNum);try{//处理psBytedoPsByte(psByte);}catch (Exception ex){Console.WriteLine("===============" + ex.Message + ex.StackTrace.ToString());}byte[] overByte = new byte[_publicByte.Length - i];Array.Copy(_publicByte, i, overByte, 0, overByte.Length);_publicByte = overByte;}}
C#中读取流媒体视频文件转H.264具体实现方法相关推荐
- OpenCV中VideoWriter输出视频文件为空或6KB解决方法(java)
最近因项目需要,刚刚开始接触OpenCV.使用videoWriter将处理完的视频帧转换为视频存到磁盘时视频大小总是为0KB(mp4)或者6KB(AVI).查找资料都说是视频编码的问题,但是换了好几种 ...
- python播放本地视频_python opencv 读取本地视频文件 修改ffmpeg的方法
Python + opencv 读取视频的三种情况: 情况一:通过摄像头采集视频 情况二:通过本地视频文件获取视频 情况三:通过摄像头录制视频,再读取录制的视频 摄像头采集.本地视频文件的读取.写视频 ...
- Android 扫描SD卡中的所有视频文件
Android应该是已经把所有的视频文件音频都在开机时,扫描完毕然后存在本地SQLite数据库了,因此,我们"扫描"的最简单方法是读取这个已经存储好的数据库.但是这样做,在程序开启 ...
- sublime python3中读取和写入文件时如何解决编码问题
sublime python3中读取和写入文件时如何解决编码问题 参考文章: (1)sublime python3中读取和写入文件时如何解决编码问题 (2)https://www.cnblogs.co ...
- 计算机目录读取,从项目目录中读取SQL查询文件(Read SQL query file from project directory)...
从项目目录中读取SQL查询文件(Read SQL query file from project directory) 我在Visual Studio项目中放置了3个特别大的SQL查询,位于项目目录中 ...
- matlab 十六进制数组,【MATLAB】MATLAB中读取二进制数据文件并加入到矩阵中
MATLAB中读取二进制数据文件并加入到矩阵中的应用如下: 如果对c语言十分熟悉的话,应该对fopen,fclose,ftell,fseek,fread,fwrite,feof 这些函数非常熟悉了,在 ...
- 【转】C++中#include包含头文件带 .h 和不带 .h 的区别
C++中#include包含头文件带 .h 和不带 .h 的区别? 如 #include <iostream> 和 #include <iostream.h> 包含的东西有哪些 ...
- dede织梦编辑器中插入mp4视频文件方法
dede织梦编辑器中插入****mp4****视频文件方法 场景: 织梦建站的时候 上传mp4视频不成功 思路: a. 登录后台->系统->系统基本参数->附件设置 查 允许上传的文 ...
- java 读取音频/视频 文件时长
java 读取音频/视频 文件时长 支持mp3,mp4,mov,m4a,wav 格式文件 源码 https://github.com/opensourceteams/java-maven-projec ...
最新文章
- 【转】开放api接口签名验证
- python入门到精通需要学多久-入门到精通python要多久
- python中的偏函数
- 转移的目的地址在指令中的jmp指令 转移地址在寄存器中的jmp指令
- 微软推出新语言Bosque,超越结构化程序设计
- html5执行shell,利用nginx执行Shell 脚本
- KnockoutJS 3.X API 第五章 高级应用(2) 控制后代绑定
- mysql断言命令_mysql的触发模拟断言
- spring AOP概念及xml配置
- 云计算在我们日常生活中有很多应用,主要有哪些?
- html如何设置按钮背景为透明,css 设置按钮(背景色渐变、背景色透明)
- volatile与Synchronized的异同
- 做嵌入式编程,为什么用的是C语言而不是C++呢?
- 凹凸贴图、法线贴图、置换贴图
- 不一样的短视频直播软件开发?
- android 取消蓝牙配对框 实现自动配对,Android 取消蓝牙配对框实现自动配对功能...
- 36招搞定电脑一切难题!!!
- window系统如何禁止运行指定程序
- [概念]图像分割的历史 + UNet-Family
- 从感知觉现象引发的对人工智能的一些思考