【ZLM】ZLM源码阅读二----RTP推流

本文介绍了使用ffmpeg进行rtmp和rtp推流的方法,包括单视频和音视频同时推流的命令。在接收和处理流时,注意到rtmp推流在196端口上的声音正常,而194端口似乎忽略了音频。文章还提到了ZLMediaKit的相关测试,并提供了ffplay播放示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

2025-04-01

推流

收流与处理

 播放

 参考 


2025-04-01 196 PC

只能拉rtmp,没有看到单独的rtp

ffmpeg.exe -f dshow -i audio="麦克风 (2K USB Camera-Audio)" -rtbufsize 1000M -thread_queue_size 1024 -f dshow   -i video="2K USB Camera"  -vcodec libx264   -acodec aac -f rtp_mpegts rtp://10.60.100.196:10000
ffplay rtmp://10.60.100.196:1935/rtp/2B0881DC

 

rtmp rtsp 等推流比较方便,参考

【音视频】利用ffmpeg实现:音视频的提取,rtmp推流等_dualven_in_csdn的博客-CSDN博客

推流

只放视频

ffmpeg.exe -f dshow -i video="XiaoMi USB 2.0 Webcam"  -vcodec libx264   -f rtp_mpegts rtp://10.60.100.196:10000

 音视频都放

ffmpeg.exe -f dshow -i audio="麦克风 (Realtek High Definition Audio)" -rtbufsize 1000M -thread_queue_size 1024 -f dshow   -i video="XiaoMi USB 2.0 Webcam"  -vcodec libx264   -acodec aac -f rtp_mpegts rtp://10.60.100.196:10000

收流与处理

看下面的getMediaList好像只提供rtmp的播放;且推在196上可以听到声音;

如果推194 也不需要secret,但好像audio不知道为啥ignore了 ;且在194上的推流列表看不到;(rtmp推流是可以看到的) 。这些都可以去代码里印证下。

194上的:

2023-05-31 16:49:10.103 I [MediaServer] [33-event poller 5] RtpProcess.cpp:263 operator() | 6752663F(10.60.100.159:60212) 允许RTP推流
2023-05-31 16:49:10.130 I [MediaServer] [33-event poller 5] GB28181Process.cpp:174 onRtpDecode | 6752663F judged to be TS
2023-05-31 16:49:10.130 I [MediaServer] [33-event poller 5] Decoder.cpp:240 onTrack | got track: H264
2023-05-31 16:49:10.130 I [MediaServer] [33-event poller 5] MediaSink.cpp:28 addTrack | Audio disabled, audio track ignored

196上的: 

{
	"code": 0,
	"data": [
		{
			"aliveSecond": 93,
			"app": "rtp",
			"bytesSpeed": 5489,
			"createStamp": 1685431350,
			"isRecordingHLS": true,
			"isRecordingMP4": false,
			"originSock": {
				"identifier": "8CA212E7",
				"local_ip": "10.60.3.118",
				"local_port": 10000,
				"peer_ip": "10.60.100.159",
				"peer_port": 57996
			},
			"originType": 3,
			"originTypeStr": "rtp_push",
			"originUrl": "rtp://__defaultVhost__/rtp/8CA212E7",
			"readerCount": 0,
			"schema": "rtmp",
			"stream": "8CA212E7",
			"totalReaderCount": 0,
			"tracks": [
				{
					"codec_id": 0,
					"codec_id_name": "H264",
					"codec_type": 0,
					"fps": 30,
					"frames": 2384,
					"gop_interval_ms": 7887,
					"gop_size": 250,
					"height": 480,
					"key_frames": 12,
					"ready": true,
					"width": 640
				},
				{
					"channels": 1,
					"codec_id": 2,
					"codec_id_name": "mpeg4-generic",
					"codec_type": 1,
					"frames": 623,
					"ready": true,
					"sample_bit": 16,
					"sample_rate": 8000
				}
			],
			"vhost": "__defaultVhost__"
		},
		{
			"aliveSecond": 2,
			"app": "rtp",
			"bytesSpeed": 50453,
			"createStamp": 1685431440,
			"isRecordingHLS": true,
			"isRecordingMP4": false,
			"originSock": {
				"identifier": "73CF8E4F",
				"local_ip": "10.60.3.118",
				"local_port": 10000,
				"peer_ip": "10.60.100.159",
				"peer_port": 59689
			},
			"originType": 3,
			"originTypeStr": "rtp_push",
			"originUrl": "rtp://__defaultVhost__/rtp/73CF8E4F",
			"readerCount": 0,
			"schema": "rtmp",
			"stream": "73CF8E4F",
			"totalReaderCount": 0,
			"tracks": [
				{
					"codec_id": 0,
					"codec_id_name": "H264",
					"codec_type": 0,
					"fps": 30,
					"frames": 74,
					"gop_interval_ms": 21,
					"gop_size": 1,
					"height": 480,
					"key_frames": 2,
					"ready": true,
					"width": 640
				},
				{
					"channels": 1,
					"codec_id": 2,
					"codec_id_name": "mpeg4-generic",
					"codec_type": 1,
					"frames": 20,
					"ready": true,
					"sample_bit": 16,
					"sample_rate": 8000
				}
			],
			"vhost": "__defaultVhost__"
		}
	]
}

 播放

ffplay rtp://10.60.100.196:10000/rtp/8CA212E7

也可以听到声音 

 参考 

ZLMediaKit推流测试 · ZLMediaKit/ZLMediaKit Wiki (github.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dualven_in_csdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值