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
224a35db
Commit
224a35db
authored
5 years ago
by
xiongziliang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
解决单音频无法录制mp4的bug
parent
90c6dd4b
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
15 行增加
和
7 行删除
+15
-7
src/Record/MP4Muxer.cpp
+13
-6
src/Record/MP4Muxer.h
+2
-1
没有找到文件。
src/Record/MP4Muxer.cpp
查看文件 @
224a35db
...
...
@@ -70,6 +70,7 @@ void MP4MuxerBase::init(int flags) {
void
MP4Muxer
::
resetTracks
()
{
_codec_to_trackid
.
clear
();
_started
=
false
;
_have_video
=
false
;
}
void
MP4Muxer
::
inputFrame
(
const
Frame
::
Ptr
&
frame
)
{
...
...
@@ -79,14 +80,18 @@ void MP4Muxer::inputFrame(const Frame::Ptr &frame) {
return
;
}
if
(
!
_started
)
{
if
(
!
_started
)
{
//还没开始
if
(
frame
->
getTrackType
()
!=
TrackVideo
||
!
frame
->
keyFrame
()){
//如果首帧是音频或者是视频但是不是i帧,那么不能开始写文件
return
;
if
(
!
_have_video
)
{
_started
=
true
;
}
else
{
if
(
frame
->
getTrackType
()
!=
TrackVideo
||
!
frame
->
keyFrame
())
{
//如果首帧是音频或者是视频但是不是i帧,那么不能开始写文件
return
;
}
//开始写文件
_started
=
true
;
}
//开始写文件
_started
=
true
;
}
//mp4文件时间戳需要从0开始
...
...
@@ -211,6 +216,7 @@ void MP4Muxer::addTrack(const Track::Ptr &track) {
return
;
}
_codec_to_trackid
[
track
->
getCodecId
()].
track_id
=
track_id
;
_have_video
=
true
;
}
break
;
case
CodecH265
:
{
...
...
@@ -248,6 +254,7 @@ void MP4Muxer::addTrack(const Track::Ptr &track) {
return
;
}
_codec_to_trackid
[
track
->
getCodecId
()].
track_id
=
track_id
;
_have_video
=
true
;
}
break
;
default
:
...
...
This diff is collapsed.
Click to expand it.
src/Record/MP4Muxer.h
查看文件 @
224a35db
...
...
@@ -81,8 +81,9 @@ private:
Stamp
stamp
;
};
unordered_map
<
int
,
track_info
>
_codec_to_trackid
;
bool
_started
=
false
;
List
<
Frame
::
Ptr
>
_frameCached
;
bool
_started
=
false
;
bool
_have_video
=
false
;
};
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论