C# 来做 视频播放 视频流处理 转码 实时传输
最近一直在研究视频实时查看播放 很遗憾 只成功了一半 记录一下历程 以便大家相互交流
项目需求是 GPS 视频设备 连接服务器 将视频流走RTP 协议发送到服务器 服务器将接收的视频流 传输给客户端 实时查看
1.第一步 上网查了一下 RTP是什么
2.第二步 上网查了 视频是由什么组成的 参考 视频编码之I帧 、P帧、B帧
3.第三步 了解完基础知识后 开始编写 服务器接收端 直接监听一个TCP端口 操作设备开始连接这个端口发送视频流 (注意 由于TCP 发送最大字节最好不要超过1470 不了解的可以百度 而视频的每一帧 远远超过了这个长度 所以需要拆包发送 服务器根据分包 在合成 相应的 I帧 P帧 和B帧)最后形成一个完整的H264 视频裸码流
4.第四步 直接将收到的裸码流 合成视频文件 用暴风影音或者支持h264裸码流直接播放 成功出视频 成功的一半就是这了
5.第五步 客户端实时播放 这一块伤脑筋了 H264 需要解码 一般的播放器才支持 直接谷歌百度这方面资料
6.第六步开始研究 视频帧解码 搜索得知 ffmpeg SharpFFmpeg 海思SDK yuv 心好累全是C++的 网上C#的示例很少
7.第七步 ffmpeg 直接调用他提供的.exe 能将我合成的裸码流文件 直接转换成通用播放器支持播放的视频文件 但是 每一帧去调用 转换成 yuv 进行实时播放 失败 调用的ffmpeg dll 海思SDk 都没有成功 卡壳了
8.总结: C#搞这个的是不是不行demo太少了 开源少 网上基本全是C++的示例和开源 同时想咨询交流下 C#有这方面经验的人
问题 H264裸码流 如何实时解码播放? 最好有demo 2305859335@qq.com