1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

Modify the play stream to specify encoding format.

This commit is contained in:
chundonglinlin 2025-02-22 23:23:10 +08:00
parent 8953dbfba1
commit c2e31d1578
3 changed files with 57 additions and 17 deletions

View file

@ -483,23 +483,6 @@ void SrsRtcSource::init_for_play_before_publishing()
video_track_desc->media_ = video_payload;
video_payload->set_h264_param_desc("level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f");
#ifdef SRS_H265
// default h265 video track description
SrsRtcTrackDescription* h265_video_track_desc = new SrsRtcTrackDescription();
stream_desc->video_track_descs_.push_back(h265_video_track_desc);
h265_video_track_desc->type_ = "video";
h265_video_track_desc->id_ = "video-" + srs_random_str(8);
h265_video_track_desc->ssrc_ = video_ssrc;
h265_video_track_desc->direction_ = "recvonly";
SrsVideoPayload* h265_video_payload = new SrsVideoPayload(kVideoPayloadType, "H265", kVideoSamplerate);
h265_video_track_desc->media_ = h265_video_payload;
h265_video_payload->set_h265_param_desc("level-id=180;profile-id=1;tier-flag=0;tx-mode=SRST");
#endif
}
set_stream_desc(stream_desc.get());
@ -1090,6 +1073,20 @@ srs_error_t SrsRtcRtpBuilder::on_video(SrsSharedPtrMessage* msg)
return err;
}
// support video codec: h264/h265
SrsVideoCodecId vcodec = format->vcodec->id;
if (vcodec != SrsVideoCodecIdAVC && vcodec != SrsVideoCodecIdHEVC) {
return err;
}
#ifdef SRS_H265
if (vcodec == SrsVideoCodecIdHEVC) {
if ((err = bridge_->update_codec(vcodec)) != srs_success) {
return srs_error_wrap(err, "update codec");
}
}
#endif
bool has_idr = false;
vector<SrsSample*> samples;
if ((err = filter(msg, format, has_idr, samples)) != srs_success) {