Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Z
ZLMediaKit
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
张翔宇
ZLMediaKit
Commits
adfc084d
Commit
adfc084d
authored
5 years ago
by
xiongziliang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提高无Metadata的rtmp推流的兼容性
parent
1fda56ab
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
8 行增加
和
13 行删除
+8
-13
src/Rtmp/RtmpDemuxer.cpp
+0
-3
src/Rtmp/RtmpDemuxer.h
+0
-8
src/Rtmp/RtmpToRtspMediaSource.h
+8
-2
没有找到文件。
src/Rtmp/RtmpDemuxer.cpp
查看文件 @
adfc084d
...
...
@@ -45,9 +45,6 @@ RtmpDemuxer::RtmpDemuxer(const AMFValue &val) {
}
}
int
RtmpDemuxer
::
getTrackCount
(
const
AMFValue
&
metadata
)
{
return
(
int
)(
metadata
[
"videocodecid"
].
type
()
!=
AMF_NULL
)
+
(
int
)(
metadata
[
"audiocodecid"
].
type
()
!=
AMF_NULL
);
}
bool
RtmpDemuxer
::
inputRtmp
(
const
RtmpPacket
::
Ptr
&
pkt
)
{
switch
(
pkt
->
typeId
)
{
...
...
This diff is collapsed.
Click to expand it.
src/Rtmp/RtmpDemuxer.h
查看文件 @
adfc084d
...
...
@@ -56,14 +56,6 @@ public:
virtual
~
RtmpDemuxer
(){};
/**
*
* 获取rtmp track 数
* @param metadata rtmp的metadata
* @return
*/
static
int
getTrackCount
(
const
AMFValue
&
metadata
);
/**
* 开始解复用
* @param pkt rtmp包
* @return true 代表是i帧
...
...
This diff is collapsed.
Click to expand it.
src/Rtmp/RtmpToRtspMediaSource.h
查看文件 @
adfc084d
...
...
@@ -53,16 +53,22 @@ public:
const
string
&
app
,
const
string
&
id
,
int
ringSize
=
0
)
:
RtmpMediaSource
(
vhost
,
app
,
id
,
ringSize
){
_demuxer
=
std
::
make_shared
<
RtmpDemuxer
>
();
}
virtual
~
RtmpToRtspMediaSource
(){}
void
onGetMetaData
(
const
AMFValue
&
metadata
)
override
{
_demuxer
=
std
::
make_shared
<
RtmpDemuxer
>
(
metadata
);
if
(
!
_demuxer
){
//在未调用onWrite前,设置Metadata能触发生成RtmpDemuxer
_demuxer
=
std
::
make_shared
<
RtmpDemuxer
>
(
metadata
);
}
RtmpMediaSource
::
onGetMetaData
(
metadata
);
}
void
onWrite
(
const
RtmpPacket
::
Ptr
&
pkt
,
bool
key_pos
=
true
)
override
{
if
(
!
_demuxer
){
//尚未获取Metadata,那么不管有没有Metadata,都生成RtmpDemuxer
_demuxer
=
std
::
make_shared
<
RtmpDemuxer
>
();
}
_demuxer
->
inputRtmp
(
pkt
);
if
(
!
_muxer
&&
_demuxer
->
isInited
(
2000
)){
_muxer
=
std
::
make_shared
<
MultiMediaSourceMuxer
>
(
getVhost
(),
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论