Commit Graph

70 Commits

Author SHA1 Message Date
xiongguangjie
d5bf99a27b
ts or ps muxer not support mjpeg video codec ignore it (#2593) 2023-06-28 14:56:06 +08:00
夏楚
e4acc59bec
媒体时间戳默认改为相对时间戳,通过时间戳矫正器解决跳跃和回退问题 (#2523)
通过用户反馈发现,遇到较多直播源时间戳混乱问题,包括rtsp流之rtcp ntp时间戳混乱,国标流时间戳混乱问题。
之前默认采用源流绝对时间戳,但是由于时间戳混乱会导致hls切片异常或视频播放不了等问题。
故默认改成相对时间戳(modify_stamp=2),通过时间戳矫正器过滤了时间戳跳跃以及回退问题(强制加1ms),
同时保留了对之前时间戳覆盖(modify_stamp=1)的兼容。
该修改同时兼容点播流,在点播流开启时间戳覆盖时,不起实质作用(采用原始绝对时间戳)。
2023-06-03 17:34: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
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
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
ziyue
ac1abb34da 新增媒体流flush机制:#1996 2022-10-16 19:54:17 +08:00
ziyue
9c3b8a6a95 时间戳改为64位 2022-08-08 17:13:39 +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
xiongguangjie
d622481619 fix multi aac frame in one frame result flv.js play audio error 2022-06-26 00:54:31 +08:00
ziyue
cb0e5c6c57 全面更新整理c sdk 2022-05-25 15:51:24 +08:00
alexliyu7352
78d32702e2
修复由于识别不出关键帧而导致hls不能切片. (#1551)
2.修复由于丢弃sei帧导致ffplay不能正常播放
2022-04-09 10:22:41 +08:00
夏楚
c72cf4cbcc
整理命名空间 (#1409)
* feat: remove using namespace mediakit in header files.

(cherry picked from commit d44aeb339a8a0e1f0455be82b21fe4b1b536299f)

* feat: remove using namespace mediakit in FFmpegSource.h

* feat: remove using namespace mediakit in RtpExt.h

* feat: remove using namespace mediakit in header files.

* feat: remove using namespace std in header files.

* feat: remove using namespace std in header files when zltoolkit remove std in header

* 补充命名空间

* 整理命名空间

* 整理命名空间2

* 修复macos ci

* 修复编译问题

* 修复编译问题2

* 修复编译问题3

Co-authored-by: Johnny <hellojinqiang@gmail.com>
Co-authored-by: Xiaofeng Wang <wasphin@gmail.com>
2022-02-02 20:34:50 +08:00
ziyue
5a592e6db6 优化循环池性能 2022-01-06 14:30:44 +08:00
ziyue
89870190e9 MPEG: 整合复用ts/ps生成代码 2021-12-28 21:21:01 +08:00
ziyue
e9008afca0 addTrack/inputFrame接口支持返回值;新增全局添加静音音频接口 2021-09-27 13:12:53 +08:00
ziyue
186c15364a 精简Frame对象实例化相关代码 2021-09-02 10:56:21 +08:00
ziyue
35d9321b93 整理H264/H265 Frame对象及相关代码 2021-07-09 13:38:20 +08:00
ziyue
59131e3b0a 修复ts/ps解析后组帧逻辑bug:#964 2021-07-07 11:02:36 +08:00
ziyue
66f28f52b4 添加Ptr定义 2021-06-29 17:42:32 +08:00
xiongguangjie
a28aeb2148 for frame merge must has vlc(video codec layer) data and flush rtmp a frame must has vcl 2021-06-19 01:27:13 +08:00
xgj
2335043cdf drop SEI and AUD for h264 and h265 avoid sei as a frame 2021-06-18 15:19:21 +08:00
ziyue
807f9626d5 webrtc新增对av1的支持 2021-06-16 11:14:10 +08:00
xia-chu
cf520491fa Merge branch 'master' of https://gitee.com/xia-chu/ZLMediaKit into dev 2021-04-26 19:50:17 +08:00
xia-chu
af2b1246fd 统一帧合并逻辑 2021-04-26 18:35:01 +08:00
ziyue
2065b6fea8 去掉最大枚举定义 2021-03-30 11:51:19 +08:00
ziyue
a7a94f0885 sdp相关的代码移动到主目录 2021-03-30 10:59:15 +08:00
xiongziliang
81f29fea61 基本完成sdp的解析和生成 2021-03-28 18:10:43 +08:00
xiongziliang
8aa3ff425b 完善sdp相关定义 2021-03-27 22:23:38 +08:00
xia-chu
14b318525e 添加rtp rtmp个数统计 2021-02-06 20:10:33 +08:00
xia-chu
62ba87dd0f 优化frame性能及整理代码 2021-02-06 20:10:33 +08:00
xiongziliang
aa45590c13 添加对象统计接口 2021-01-23 09:44:37 +08:00
xia-chu
b6cbc87712 全面整理代码,去除编译警告 2021-01-17 18:31:50 +08:00
xiongziliang
4cae88e242 调整代码 2021-01-17 10:28:52 +08:00
Liu Jiang
525949c362 将CodecL16放置到enum最后,防止兼容性问题 2020-12-26 16:00:35 +08:00
Liu Jiang
66a3b7a9ca RTSP推流增加L16动态payload type支持(RFC 3551 Section 4.5.11, RFC 2586) 2020-12-26 15:08:01 +08:00
xiongziliang
700a16c759 大幅提升接收推流性能以及降低内存占用 2020-11-01 03:41:35 +08:00
xiongziliang
efdc105b40 减少内存拷贝,提升性能 2020-09-21 14:56:58 +08:00
xiongziliang
b3f048f194 修复adts符合包相关bug 2020-08-08 12:19:04 +08:00
xiongziliang
a22f97c777 rtsp/rtmp/mp4支持opus并整理代码 2020-08-01 10:22:12 +08:00
xiongziliang
cf599167c1 修复指针转换偏移量导致的bug 2020-05-15 21:48:29 +08:00
xiongziliang
be9e31bba2 修复指针转换偏移量导致的bug 2020-05-15 21:39:06 +08:00