请问 iOS h264 视频如何解码并播放?视频监控这一块的

2015-06-25 11:27:01 +08:00
 lzyroot
h264格式: http://stackoverflow.com/questions/24884827/possible-locations-for-sequence-picture-parameter-sets-for-h-264-stream 数据使用tcp传输的

请问如何通过ffmpeg解码播放出来呢,难整阿,有没有大神做过呢,有做过的可否扒份demo学习下,感激不尽
7952 次点击
所在节点    iDev
20 条回复
lzyroot
2015-06-25 11:27:43 +08:00
ffmpeg不会用阿
lzyroot
2015-06-25 11:30:31 +08:00
HTTP Live Streaming 苹果官方的这个不知道能不能解码
lzyroot
2015-06-25 11:39:40 +08:00
连接是通过ip 端口 服务端终端号 信道 客户端终端号连接 类似"192.168.230.64", "9998", "13000010007", "6 13000010006"
NUT
2015-06-25 12:47:14 +08:00
给你个思路,
1、视频通过 PCM格式 录出来的buffer 通过 x264编码后成 H264 格式的 ES流(裸流)
2、怎么打包自己看啥协议,一般有TS PS等。常用就是TS流,当然这里涉及到RTP等。lz这里需要知道 SPS PPS之类的东西。
3、怎么解析服务器下发的H264, 这个我们采用先解出来成为 YUV ,然后渲染成 bitmap ,然后刷新就行。

成品 DEMO 肯定是没有的。 不过每个部分的代码在网上都有。
NUT
2015-06-25 12:48:09 +08:00
重新看了下。。。 说多了, 你就直接看3就行,
lzyroot
2015-06-25 13:41:24 +08:00
@NUT 能顺手给个这部分的代码吗。。没找到呢,谢谢
honeycomb
2015-06-25 14:27:23 +08:00
@lzyroot bilibili的ijkplayer?
lzyroot
2015-06-25 15:55:16 +08:00
@honeycomb 这个可以解码h264吗?可是我不会用。。
NUT
2015-06-25 16:54:30 +08:00
这个还真不能顺手。

看看这个
http://www.jianshu.com/p/c69933606ddf
MarineLv
2015-06-25 19:19:42 +08:00
@NUT 我了个去……我说怎么又被扒出来了……原来源头在V站……
NUT
2015-06-25 21:37:47 +08:00
qq2511296
2015-06-26 09:49:37 +08:00
tcp的不知道可以不可以 tstp http 等貌似是可以
http://pan.baidu.com/s/1qW1bJuG 这个是用kxmovie的demo 整合好了了ffmepg的lib
Panic
2015-06-26 11:29:47 +08:00
ios 有硬件解码把, 你可以试试搞成 rtsp 直播估计比较好。
freewarcraft
2015-06-26 16:07:16 +08:00
正好我在公司就是负责类似项目的产品经理,但很抱歉我不懂具体的技术,只能说个大概。

不过我对po主的问题没看明白,因为ios原生支持h264. 例如,你在ios safari里输入一个url,链接到一个h264视频文件,safari就会自动调用系统播放器播放。

另外,你又为何要用ffmpeg播放?我只知道ffmpeg可以在电脑上跑,你是想在ios app里用ffmpeg解码?好像没这个必要啊。

关于你做的项目,说点我的经验,希望可以帮到你
首先,你是想做一套视频监控系统,让用户可以在手机上看视频监控?
如果是的话,那么大致的流程是:摄像头-转码切片-存储分发-手机观看。

我这里采用的是HLS,转码切片用过ripcode(几十万)和ffmpeg(免费)。ffmpeg问题多多,经常手机放着放着画面就卡死了,要退出播放再开始播放才行,安卓和ios设备都这样,原因排查了半天也不知道,ripcode就没问题。

转码切片完成后就生成了很多h264+aac的ts片段文件及一个m3u8列表文件,然后手机app里去读取m3u8的地址就ok了,会调用系统播放器播放最新生成的ts文件,实现实时视频监控。当然,从流程也可以看出,这样的视频是有延迟的,大概延迟30秒。

另外还需要做回看点播,用户认证和防盗链,否则抓个包人人都能看了。。。

Demo是有,但毫无疑问的不能给你。。。
freewarcraft
2015-06-26 16:21:12 +08:00
刚看了下上面的回复,是我孤陋寡闻了。。。
lzyroot
2015-06-27 09:24:08 +08:00
@freewarcraft 感谢,这个项目播放视频是用TCP协议传输的,实时传回,因为安卓已经用h264完成了,所以ios也得用这个
lzyroot
2015-07-03 10:23:55 +08:00
@MarineLv 文章为何隐藏了阿
MarineLv
2015-07-06 10:35:19 +08:00
@lzyroot 一开始是发在开源中国上的,简书也不怎么玩干脆就都删掉了。结果后来发现开源中国上那篇google搜不出来。。坑爹啊
http://my.oschina.net/expectoPatronum/blog/293887 你如果还需要参考这里是链接~
lzyroot
2015-07-11 15:57:28 +08:00
@Panic 怎么搞呢,大神,能说详细点吗。
lzyroot
2015-07-11 16:39:51 +08:00
@NUT 每个部分的代码也没找到阿,能帮忙找找吗,唉 ,折腾这么久了。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/201017

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX