domenor

domenor

0个粉丝

17

问答

0

专栏

1

资料

domenor  发布于  2016-06-07 17:41:39
采纳率 0%
17个问答
8192

关于live555简单实现实时流播放的方法和问题

 
最近在弄一个项目,需要在Hi3516A实现实时视频的RTSP传输,然后决定用live555开源库来实现,实现过程如下:
一、live555开源库的移植,这部分比较简单,就不赘述了
二、live555默认只能实现文件的点播,如test.264这类实际存在的文件,而我的目标是实时流,所以我按照以下简单的方法实现了直播
1、首先利用mkfifo命令创建一个有名管道stream_chn0.264,稍微修改Sample里的例子,运行程序,使实时流不断写入到这个管道里面;
2、在linux下,有名管道以文件的方式存在,所以直接运行live555的服务器,通过VLC输入rtsp的url:rtsp://localIP:port/srteam_chn0.264,即可看到实时画面
这种方案初步的实现了项目要求,但是在1080P25_HignProfile的VBR传输中,测试中我发现了一个严重问题如下:
1、传输一开始,延时大约500ms(VLC网络缓存设置为300ms),这个是可以接受的,但随着运行越来越长,延时越来越大,甚至会到5s以上,重启VLC无效,但我关闭live555服务器,然后重启,延时回到500ms,然后延时又随着运行时间而变长。
请问一下,有没有遇到过这种问题的,这应该如何解决呢?
还有,我一直都是在用VLC做RTSP实时流的测试,有没有别的播放器可以测试呢,暴风影音我试过,直接是打开失败了
我来回答
回答11个
时间排序
认可量排序

DarkQin

1个粉丝

8

问答

0

专栏

2

资料

DarkQin 2016-06-07 17:57:05
认可0
不建议用live555做服务器,效率不高,
延时问题的话,看一下时间戳是否对的

domenor

0个粉丝

17

问答

0

专栏

1

资料

domenor 2016-06-07 18:05:29
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=31268&ptid=11540]DarkQin 发表于 2016-6-7 17:57[/url]
不建议用live555做服务器,效率不高,
延时问题的话,看一下时间戳是否对的[/quote]

你好,谢谢回答,时间戳我在哪里可以看到呢
如果不用live555的话,有其他的开源库选择吗,移植的难度和live555相比呢

DarkQin

1个粉丝

8

问答

0

专栏

2

资料

DarkQin 2016-06-07 18:09:15
认可0
你要看,那就要看live555的源码了,网上有好多文章对其分析的
或者 抓包来看 发过来的rtp的时间搓了

domenor

0个粉丝

17

问答

0

专栏

1

资料

domenor 2016-06-07 18:13:04
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=31272&ptid=11540]DarkQin 发表于 2016-6-7 18:09[/url]
你要看,那就要看live555的源码了,网上有好多文章对其分析的
或者 抓包来看 发过来的rtp的时间搓了[/quote]

嗯,好的,我去查一下相关资料
我抓包到的时间戳需要和哪个对比来看是否正确呢

jerrylipeng

1个粉丝

11

问答

0

专栏

0

资料

jerrylipeng 2016-06-08 10:08:08
认可0
用live555的话,不要用管道,要从内存里给数据
建议将testH264VideoStreamer.cpp里的ByteStreamFileSource换成你自己的FramedSource,你从解码器里的到的数据通过这个FramedSource给到RTSP server

domenor

0个粉丝

17

问答

0

专栏

1

资料

domenor 2016-06-08 13:56:50
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=31294&ptid=11540]jerrylipeng 发表于 2016-6-8 10:08[/url]
用live555的话,不要用管道,要从内存里给数据
建议将testH264VideoStreamer.cpp里的ByteStreamFileSource ...[/quote]

嗯,感谢回答
因为我对C++不熟悉,所以没有轻易去改动live555的源码,请问,为什么管道的方式不适用呢

lihongfei

0个粉丝

17

问答

0

专栏

2

资料

lihongfei 2016-06-08 14:38:10
认可0
我也是使用的live555做的rtsp,有的电脑会发生你说的问题,随着播放时间,延时会偏大,我理解的内容应该是,电脑原因和网络问题,和你这个还有点不一样的,你也不妨换一台电脑试试,是否有同样的问题,

domenor

0个粉丝

17

问答

0

专栏

1

资料

domenor 2016-06-08 15:05:56
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=31310&ptid=11540]lihongfei 发表于 2016-6-8 14:38[/url]
我也是使用的live555做的rtsp,有的电脑会发生你说的问题,随着播放时间,延时会偏大,我理解的内容应该是 ...[/quote]

还没换电脑试过,我试试看,请问下你是如何实现实时传输的呢,是管道的方式,还是内存的方式呢

lihongfei

0个粉丝

17

问答

0

专栏

2

资料

lihongfei 2016-06-08 16:27:19
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=31315&ptid=11540]domenor 发表于 2016-6-8 15:05[/url]
还没换电脑试过,我试试看,请问下你是如何实现实时传输的呢,是管道的方式,还是内存的方式呢[/quote]

我用的是管道方式,

jerrylipeng

1个粉丝

11

问答

0

专栏

0

资料

jerrylipeng 2016-06-12 10:38:39
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=31303&ptid=11540]domenor 发表于 2016-6-8 13:56[/url]
嗯,感谢回答
因为我对C++不熟悉,所以没有轻易去改动live555的源码,请问,为什么管道的方式不适用呢[/quote]

其实我也说不上来
但是用管道的话,这个数据是交给操作系统处理了的,中间可能有额外开销。并且如果后期要优化性能的话,也应该也很难下手
我之前看了这个文章,跟你说的很像,供参考
[url]http://toutiao.com/i6253375996670509570/[/url]

ljr13141503189

0个粉丝

32

问答

0

专栏

0

资料

ljr13141503189 2017-10-20 15:21:01
认可0
您好  最近在做3531的视频采集  请问将实时流不断写入管道里是如何实现的?  方便的话代码能不能借我参阅参阅  谢谢您
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区