diff --git a/internal/core/rtmp_conn.go b/internal/core/rtmp_conn.go index e1bcabeb..1b565d05 100644 --- a/internal/core/rtmp_conn.go +++ b/internal/core/rtmp_conn.go @@ -410,8 +410,8 @@ func (c *rtmpConn) runRead(ctx context.Context, u *url.URL) error { c.nconn.SetWriteDeadline(time.Now().Add(time.Duration(c.writeTimeout))) err = c.conn.WriteMessage(&message.MsgVideo{ - ChunkStreamID: 6, - MessageStreamID: 1, + ChunkStreamID: message.MsgVideoChunkStreamID, + MessageStreamID: 0x1000000, IsKeyFrame: idrPresent, H264Type: flvio.AVC_NALU, Payload: avcc, @@ -442,8 +442,8 @@ func (c *rtmpConn) runRead(ctx context.Context, u *url.URL) error { for i, au := range aus { c.nconn.SetWriteDeadline(time.Now().Add(time.Duration(c.writeTimeout))) err := c.conn.WriteMessage(&message.MsgAudio{ - ChunkStreamID: 4, - MessageStreamID: 1, + ChunkStreamID: message.MsgAudioChunkStreamID, + MessageStreamID: 0x1000000, Rate: flvio.SOUND_44Khz, Depth: flvio.SOUND_16BIT, Channels: flvio.SOUND_STEREO, diff --git a/internal/core/rtmp_server_test.go b/internal/core/rtmp_server_test.go index 59a083a8..705d0f88 100644 --- a/internal/core/rtmp_server_test.go +++ b/internal/core/rtmp_server_test.go @@ -112,7 +112,7 @@ func TestRTMPServerPublishRead(t *testing.T) { require.Equal(t, audioTrack, audioTrack2) err = conn1.WriteMessage(&message.MsgVideo{ - ChunkStreamID: 6, + ChunkStreamID: message.MsgVideoChunkStreamID, MessageStreamID: 0x1000000, IsKeyFrame: true, H264Type: flvio.AVC_NALU, @@ -123,8 +123,8 @@ func TestRTMPServerPublishRead(t *testing.T) { msg1, err := conn2.ReadMessage() require.NoError(t, err) require.Equal(t, &message.MsgVideo{ - ChunkStreamID: 6, - MessageStreamID: 1, + ChunkStreamID: message.MsgVideoChunkStreamID, + MessageStreamID: 0x1000000, IsKeyFrame: true, H264Type: flvio.AVC_NALU, Payload: []byte{ diff --git a/internal/core/rtmp_source_test.go b/internal/core/rtmp_source_test.go index d90d020f..f5963d34 100644 --- a/internal/core/rtmp_source_test.go +++ b/internal/core/rtmp_source_test.go @@ -85,7 +85,7 @@ func TestRTMPSource(t *testing.T) { <-connected err = conn.WriteMessage(&message.MsgVideo{ - ChunkStreamID: 6, + ChunkStreamID: message.MsgVideoChunkStreamID, MessageStreamID: 0x1000000, IsKeyFrame: true, H264Type: flvio.AVC_NALU, diff --git a/internal/rtmp/conn.go b/internal/rtmp/conn.go index 75201595..23d18247 100644 --- a/internal/rtmp/conn.go +++ b/internal/rtmp/conn.go @@ -910,7 +910,7 @@ func (c *Conn) WriteTracks(videoTrack *gortsplib.TrackH264, audioTrack *gortspli }.Marshal() err = c.WriteMessage(&message.MsgVideo{ - ChunkStreamID: 6, + ChunkStreamID: message.MsgVideoChunkStreamID, MessageStreamID: 0x1000000, IsKeyFrame: true, H264Type: flvio.AVC_SEQHDR, @@ -928,7 +928,7 @@ func (c *Conn) WriteTracks(videoTrack *gortsplib.TrackH264, audioTrack *gortspli } err = c.WriteMessage(&message.MsgAudio{ - ChunkStreamID: 4, + ChunkStreamID: message.MsgAudioChunkStreamID, MessageStreamID: 0x1000000, Rate: flvio.SOUND_44Khz, Depth: flvio.SOUND_16BIT, diff --git a/internal/rtmp/conn_test.go b/internal/rtmp/conn_test.go index 5a92f0ed..0c0624eb 100644 --- a/internal/rtmp/conn_test.go +++ b/internal/rtmp/conn_test.go @@ -786,8 +786,8 @@ func TestReadTracks(t *testing.T) { PPS: pps, }.Marshal() err = mrw.Write(&message.MsgVideo{ - ChunkStreamID: 6, - MessageStreamID: 1, + ChunkStreamID: message.MsgVideoChunkStreamID, + MessageStreamID: 0x1000000, IsKeyFrame: true, H264Type: flvio.AVC_SEQHDR, Payload: buf, @@ -802,8 +802,8 @@ func TestReadTracks(t *testing.T) { }.Marshal() require.NoError(t, err) err = mrw.Write(&message.MsgAudio{ - ChunkStreamID: 4, - MessageStreamID: 1, + ChunkStreamID: message.MsgAudioChunkStreamID, + MessageStreamID: 0x1000000, Rate: flvio.SOUND_44Khz, Depth: flvio.SOUND_16BIT, Channels: flvio.SOUND_STEREO, @@ -848,8 +848,8 @@ func TestReadTracks(t *testing.T) { PPS: pps, }.Marshal() err = mrw.Write(&message.MsgVideo{ - ChunkStreamID: 6, - MessageStreamID: 1, + ChunkStreamID: message.MsgVideoChunkStreamID, + MessageStreamID: 0x1000000, IsKeyFrame: true, H264Type: flvio.AVC_SEQHDR, Payload: buf, @@ -888,8 +888,8 @@ func TestReadTracks(t *testing.T) { PPS: pps, }.Marshal() err = mrw.Write(&message.MsgVideo{ - ChunkStreamID: 6, - MessageStreamID: 1, + ChunkStreamID: message.MsgVideoChunkStreamID, + MessageStreamID: 0x1000000, IsKeyFrame: true, H264Type: flvio.AVC_SEQHDR, Payload: buf, @@ -904,8 +904,8 @@ func TestReadTracks(t *testing.T) { }.Marshal() require.NoError(t, err) err = mrw.Write(&message.MsgAudio{ - ChunkStreamID: 4, - MessageStreamID: 1, + ChunkStreamID: message.MsgAudioChunkStreamID, + MessageStreamID: 0x1000000, Rate: flvio.SOUND_44Khz, Depth: flvio.SOUND_16BIT, Channels: flvio.SOUND_STEREO, @@ -921,8 +921,8 @@ func TestReadTracks(t *testing.T) { PPS: pps, }.Marshal() err = mrw.Write(&message.MsgVideo{ - ChunkStreamID: 6, - MessageStreamID: 1, + ChunkStreamID: message.MsgVideoChunkStreamID, + MessageStreamID: 0x1000000, IsKeyFrame: true, H264Type: flvio.AVC_SEQHDR, Payload: buf, @@ -937,8 +937,8 @@ func TestReadTracks(t *testing.T) { }.Marshal() require.NoError(t, err) err = mrw.Write(&message.MsgAudio{ - ChunkStreamID: 4, - MessageStreamID: 1, + ChunkStreamID: message.MsgAudioChunkStreamID, + MessageStreamID: 0x1000000, Rate: flvio.SOUND_44Khz, Depth: flvio.SOUND_16BIT, Channels: flvio.SOUND_STEREO, @@ -1238,7 +1238,7 @@ func TestWriteTracks(t *testing.T) { msg, err = mrw.Read() require.NoError(t, err) require.Equal(t, &message.MsgVideo{ - ChunkStreamID: 6, + ChunkStreamID: message.MsgVideoChunkStreamID, MessageStreamID: 0x1000000, IsKeyFrame: true, H264Type: flvio.AVC_SEQHDR, @@ -1256,7 +1256,7 @@ func TestWriteTracks(t *testing.T) { msg, err = mrw.Read() require.NoError(t, err) require.Equal(t, &message.MsgAudio{ - ChunkStreamID: 4, + ChunkStreamID: message.MsgAudioChunkStreamID, MessageStreamID: 0x1000000, Rate: flvio.SOUND_44Khz, Depth: flvio.SOUND_16BIT, diff --git a/internal/rtmp/message/msg_audio.go b/internal/rtmp/message/msg_audio.go index 67f3a7ce..08b6e27f 100644 --- a/internal/rtmp/message/msg_audio.go +++ b/internal/rtmp/message/msg_audio.go @@ -10,6 +10,11 @@ import ( "github.com/aler9/rtsp-simple-server/internal/rtmp/rawmessage" ) +const ( + // this is the chunk stream ID that is usually used to send MsgAudio{} + MsgAudioChunkStreamID = 6 +) + // MsgAudio is an audio message. type MsgAudio struct { ChunkStreamID byte diff --git a/internal/rtmp/message/msg_video.go b/internal/rtmp/message/msg_video.go index 2e030c1e..30aaad3f 100644 --- a/internal/rtmp/message/msg_video.go +++ b/internal/rtmp/message/msg_video.go @@ -10,6 +10,11 @@ import ( "github.com/aler9/rtsp-simple-server/internal/rtmp/rawmessage" ) +const ( + // this is the chunk stream ID that is usually used to send MsgVideo{} + MsgVideoChunkStreamID = 6 +) + // MsgVideo is a video message. type MsgVideo struct { ChunkStreamID byte