夏楚
64f15202de
Support multi audio/video track
2023-12-09 22:34:22 +08:00
夏楚
bbe8f4a018
release 8.0
2023-12-09 16:23:51 +08:00
fruit Juice
1609fe67d7
Track新增update方法,支持更新宽高采样率等信息 ( #2960 )
...
当变分辨率时候,实时更新MP4封装层的参数信息,避免出现封装层与编码(SPS)层视频宽高不一样,造成解码参数错误花屏;同时也支持更新音频采样率等信息。
---------
Co-authored-by: xia-chu <771730766@qq.com>
2023-11-07 23:36:41 +08:00
yujitai
433ecb1c5c
RTC: 修复gop没有sps/pps导致的秒开失败问题 ( #2959 )
...
rtc场景下,如果directProxy设置为1,sdp没有传递sps/pps,因此gop的开始需要是rtp sps/pps配置帧而不是idr关键帧,这样才能保证秒开。
2023-11-07 19:34:40 +08:00
xia-chu
d8d7fe9144
通过getMediaList接口可返回Track时间戳增量信息
2023-10-31 11:10:02 +08:00
夏楚
5a2bf8d196
完成对enhanced rtmp videocodecid的兼容 ( #2718 )
...
请查阅: https://github.com/veovera/enhanced-rtmp/issues/8
2023-07-29 23:03:28 +08:00
夏楚
73c8a5faf4
统一设置单字节对齐方式 ( #2716 )
...
__attribute__((packed)) 替换为 #pragma pack(push, 1)
2023-07-29 13:07:22 +08:00
xia-chu
3e9a8b9d8b
优化函数命名
...
isCfgFrame -> isConfigFrame
getAacCfg -> getConfig
2023-07-22 19:46:26 +08:00
xia-chu
780a1eb9fc
完善rtmp关键帧与配置帧判断逻辑
2023-07-22 19:46:26 +08:00
xia-chu
a86398b6db
优化与完善rtmp协议相关代码
...
rtmp相关常量由宏改为枚举
明确rtmp包一些字段赋值含义
2023-07-22 19:46:25 +08:00
夏楚
47add54465
新增支持enhanced-rtmp h265 推流 ( #2694 )
2023-07-22 17:31:39 +08:00
夏楚
09aa38334e
H264 rtsp sdp生成正确的packetization-mode ( #2691 )
2023-07-22 17:30:39 +08:00
夏楚
6aa4b741a3
修复通用rtp解码器输入小时间戳增量流在丢包时不再输出帧数据的bug ( #2589 )
...
如果rtp时间戳增量很小,在rtp时间戳在转换单位为毫秒时无变化,
从而被认为是上一帧数据,由于处于丢包状态,此rtp数据将被一直丢弃。
2023-06-28 14:56:24 +08:00
xiongguangjie
d5bf99a27b
ts or ps muxer not support mjpeg video codec ignore it ( #2593 )
2023-06-28 14:56:06 +08:00
夏楚
db8e9182cc
新增配置项指定H264 rtp打包是否优先采用stap-a模式 ( #2582 )
...
H264 rtp打包模式是否采用stap-a模式(为了在老版本浏览器上兼容webrtc)还是采用Single NAL unit packet
per H.264 模式 有些老的rtsp设备不支持stap-a rtp,设置此配置为0可提高兼容性
2023-06-26 10:04:16 +08:00
xia-chu
64b8079ac1
优化函数命名风格
...
FindField改名为findSubString
2023-06-10 14:55:40 +08:00
夏楚
e4acc59bec
媒体时间戳默认改为相对时间戳,通过时间戳矫正器解决跳跃和回退问题 ( #2523 )
...
通过用户反馈发现,遇到较多直播源时间戳混乱问题,包括rtsp流之rtcp ntp时间戳混乱,国标流时间戳混乱问题。
之前默认采用源流绝对时间戳,但是由于时间戳混乱会导致hls切片异常或视频播放不了等问题。
故默认改成相对时间戳(modify_stamp=2),通过时间戳矫正器过滤了时间戳跳跃以及回退问题(强制加1ms),
同时保留了对之前时间戳覆盖(modify_stamp=1)的兼容。
该修改同时兼容点播流,在点播流开启时间戳覆盖时,不起实质作用(采用原始绝对时间戳)。
2023-06-03 17:34:34 +08:00
xiongguangjie
64553797bd
h265 rtp pack avoid 1387 size nal fu-a only one end packet and first satrt end not exist try fix #2425
2023-04-27 19:54:47 +08:00
xiongziliang
7a95c87a29
优化代码
...
空构造和析构函数替换为缺省
去除多余分号
2023-04-22 21:59:26 +08:00
xiongguangjie
67d8837442
rtp h265 packet like h264
2023-04-06 19:54:59 +08:00
ljx0305
ca7efd5941
修正ssrc轮回为0时,ssrc重复分配为1的bug( #2327 )
2023-03-24 16:19:22 +08:00
xiongguangjie
d6e9a4fb90
remove PSParser mistake comment
2023-03-06 19:33:34 +08:00
ziyue
1f2ef82b46
新增支持获取gop大小与间隔信息: #1570
...
getMediaList/getMediaInfo接口、on_media_changed hook新增支持字段如下:
{
"codec_id" : 0,
"codec_id_name" : "H264",
"codec_type" : 0,
"fps" : 0.0,
"frames" : 1119, #累计接收帧数,不包含sei/aud/sps/pps等不能解码的帧
"gop_interval_ms" : 1993, #gop间隔时间,单位毫秒
"gop_size" : 60, #gop大小,单位帧数
"height" : 556,
"key_frames" : 21, #累计接收关键帧数
"ready" : true,
"width" : 990
}
2023-02-20 16:11:10 +08:00
ziyue
f6cba98a8e
修复FrameDispatcher可能导致死锁的问题
2023-02-06 14:19:43 +08:00
xiongziliang
6eb36ec883
获取MediaSource信息相关接口返回帧数相关字段:#1570
2023-02-05 22:04:14 +08:00
xiongziliang
a0955d956a
优化代码风格
2023-02-05 22:00:36 +08:00
xiongguangjie
a52e9d6ba8
fix h264 no idr nal sps pps sei i slices
2023-02-04 18:17:06 +08:00
ziyue
ae950606cb
修复JPEGTrack无法就绪的bug
2022-12-30 18:03:21 +08:00
a-ucontrol
eed5f02380
rtsp/rtp 新增支持mjpeg编码 ( #2166 )
...
* Trying to send mjpeg via MultiMediaSourceMuxer
* Improved JPEGRtpEncoder::inputFrame code but still not working
* 优化代码
* 完善jpeg相关逻辑
* Micro fix
* FrameJPEG renamed to JPEGFrame according to ZLM style
* Modified JPEGRtpEncoder::inputFrame and JPEGRtpEncoder::rtp_send_jpeg
* getVideoHeight(), getVideoWidth() and getVideoFps() in JPEGTrack
* mjpeg rtp打包避免内存拷贝/修复mjpeg rtp解包huffman_table size字段错误的bug
* 支持mjpeg pix type
* 优化性能
* add bom header
2022-12-21 15:32:16 +08:00
老衲不出家
f05a9501fa
Unified code style ( #2137 )
2022-12-02 14:43:06 +08:00
mtdxc
754073918a
Header refactor ( #2115 )
...
* 优化MultiMediaSourceMuxer头文件包含
* 将MediaSinkDelegate和Demux移到MediaSink中
* MediaSource头文件重构, 独立出PacketCache.h
精简Frame和Track的头文件
* Rtmp头文件重构
* Rtsp头文件重构
* webrtc头文件重构
* 规范.h头文件包含,并将其移到.cpp中:
- 尽量不包含Common\config.h
- Util\File.h
- Rtsp/RtspPlayer.h
- Rtmp/RtmpPlayer.h
* 删除多余的Stamp.h和Base64包含
2022-11-29 11:07:13 +08:00
ziyue
fc433de9ac
适配webrtc AV1编码: #2091
2022-11-18 16:47:02 +08:00
ziyue
034e29b25a
修复rtsp basic鉴权相关bug: #2087
2022-11-15 20:52:27 +08:00
ziyue
60d96f4f3b
优化FrameDispatcher相关代码
2022-11-01 16:52:52 +08:00
cqm
dde352542b
private FrameWriterInterfaceHelper
2022-11-01 12:03:49 +08:00
cqm
ac3d7bd21f
add addDelegate with std::function, remove FrameWriterInterfaceHelper
2022-11-01 12:03:04 +08:00
xiongguangjie
0a71e06d4a
united some code style
2022-10-19 14:55:39 +08:00
xiongguangjie
0d2e035215
rtsp and rtp h264 lowlatency mode config
2022-10-19 14:20:53 +08:00
ziyue
ac1abb34da
新增媒体流flush机制:#1996
2022-10-16 19:54:17 +08:00
ziyue
b34db64961
修复非法aac rtp包导致的除0崩溃问题: #1869
2022-08-10 10:44:34 +08:00
ziyue
35791aac89
优化代码,去除编译警告,修复拼写错误
2022-08-08 17:36:07 +08:00
ziyue
9c3b8a6a95
时间戳改为64位
2022-08-08 17:13:39 +08:00
ziyue
ba947cb6b5
调整switch case语句缩进
2022-08-05 17:42:17 +08:00
ziyue
f85de2e108
精简复用rtp encoder创建相关代码
2022-08-05 17:36:51 +08:00
ziyue
ec3fe4350a
修复开启时间戳覆盖后崩溃的bug: #1848
2022-08-02 11:06:33 +08:00
ziyue
ec7fe5cc9a
整理frame相关代码,完善FrameStamp重载函数
2022-07-22 16:20:47 +08:00
xiongguangjie
14da5ab2d8
when start send rtp wait key rtp previous drop ( #1789 )
2022-07-09 22:30:43 +08:00
Dw9
c4988e7cfc
修复mk_track_create创建的track无法初始化复用器的bug( #1784 , #1778 )
2022-07-07 16:56:54 +08:00
xiongguangjie
d622481619
fix multi aac frame in one frame result flv.js play audio error
2022-06-26 00:54:31 +08:00
xiongziliang
fd4145a622
完善对rtp负载为空处理逻辑:#1661
2022-05-28 10:34:54 +08:00