C# 来做 视频播放 视频流处理 转码 实时传输

y1412367255 2017-07-07 03:32:34
最近一直在研究视频实时查看播放 很遗憾 只成功了一半 记录一下历程 以便大家相互交流

项目需求是 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

...全文
3321 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
天祈 2017-07-10
  • 打赏
  • 举报
回复
还要lz的思路就是错的,编码是为了降低 视频数据大小,而降低网络传输压力,一般是服务端负责编码,客户端解码!把数据解出来发出去算啥?
天祈 2017-07-10
  • 打赏
  • 举报
回复
光解码可以用libvlc 支持rtsp, 需要图形处理建议用emgucv(opencv的C#封装版)
天祈 2017-07-10
  • 打赏
  • 举报
回复
用emgucv
编程有钱人了 2017-07-10
  • 打赏
  • 举报
回复
这里面的积水比较复杂了,实际应用还要考虑,带宽,服务器压力等
y1412367255 2017-07-08
  • 打赏
  • 举报
回复
沉了
weixin_39055500 2017-07-08
  • 打赏
  • 举报
回复
还以为是什么呢?
y1412367255 2017-07-07
  • 打赏
  • 举报
回复
一楼自己的
TVideoGrabber_9.1.1.2官方demo,使用我资源中的lincese可以直接使用,用于图像解码功能强大,可支持各种摄像头和图像格式 TVideoGrabber是一个用于C#.NET,VB.NET,C ++,Delphi,C ++ Builder和ActiveX兼容应用程序开发的视频捕捉/媒体播放器SDK。 TVideoGrabber功能强大且直观,将帮助您节省时间,金钱和精力,将视频和/或音频功能纳入您的项目中。 TVideoGrabber可捕获和记录来自大多数视频捕捉设备(如USB网络摄像头,USB模拟捕捉设备,IP摄像头,桌面以及用作视频源的一组位图)的视频和音频流。 通过安装我们的可选RTSP DirectShow源过滤器,您可以捕获RTSP,RTMP,HTTP,Shoucast和其他各种流源。 RTSP过滤器可让您将流媒体源保存到文件而无需转码,并且在运行中生成新文件时不会丢失帧。 TvideoGrabber还支持采用罗技C920(H264),Blackmagic Decklink,Hauppauge Colossus等硬件编码器捕捉设备。 大多数编码格式都是本地支持的,或者使用第三方编解码器。 您可以将音频/视频直接或通过Windows Media服务器流式传输到网络。 TVideoGrabber也是一个先进的媒体播放器,可以播放正常速度的音频/视频剪辑,更快,更慢,前进和后退,逐个或通过播放列表。 可以捕获帧,在预览,录制或播放过程中执行文本/图形叠加,从另一TVideoGrabber组件执行PIP视频,应用视频处理(如旋转,裁剪等)。 TVideoGrabber可以将多个剪辑合并为一个剪辑,将剪辑分割成更小的剪辑,并将其重新编码为不同的格式。 TVideoGrabber包含以下功能的单个组件: - 视频预览 - 视频录制, - 声音录制, - 媒体播放器, - 合并/分割视频和音频CLIPS, - 帧捕获, - 图形和文本覆盖, - 来自另一个TVIDEOGRABBER的PIP视频(画中画) - IP CAMERA SUPPORT, - 运动检测, - 实时网络音频/视频媒体, - 视频处理, - 屏幕(或窗口)录制, - 视频剪辑从图像中建立, - 重新编码为其他格式, - ZOOM / CROP, - 音频VU米, - 双显示,

110,572

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧