mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
RTMP: Support enhanced RTMP specification for HEVC. v6.0.42 (#3495)
* RTMP: Support enhanced RTMP specification for HEVC, v6.0.42. * Player: Upgrade mpegts.js to support it. Enhanced RTMP specification: https://github.com/veovera/enhanced-rtmp First, start SRS `v6.0.42+` with HTTP-TS support: ```bash ./objs/srs -c conf/http.ts.live.conf ``` Then, you can use [OBS 29.1+](https://github.com/obsproject/obs-studio/releases) to push HEVC via RTMP. Start OBS with the following settings in the `Settings > Stream` tab: * Server: `rtmp://localhost/live` * Stream Key: `livestream` * Encoder: Please select the HEVC hardware encoder. Finally, open the player http://localhost:8080/players/srs_player.html?stream=livestream.ts Or use VLS or ffplay to play `http://localhost:8080/live/livestream.ts` --------- Co-authored-by: chundonglinlin <chundonglinlin@163.com>
This commit is contained in:
parent
dcd02fe69c
commit
26aabe413d
10 changed files with 351 additions and 78 deletions
|
@ -64,12 +64,32 @@ std::string srs_video_codec_id2str(SrsVideoCodecId codec);
|
|||
enum SrsVideoAvcFrameTrait
|
||||
{
|
||||
// set to the max value to reserved, for array map.
|
||||
SrsVideoAvcFrameTraitReserved = 3,
|
||||
SrsVideoAvcFrameTraitForbidden = 3,
|
||||
SrsVideoAvcFrameTraitReserved = 6,
|
||||
SrsVideoAvcFrameTraitForbidden = 6,
|
||||
|
||||
SrsVideoAvcFrameTraitSequenceHeader = 0,
|
||||
SrsVideoAvcFrameTraitNALU = 1,
|
||||
SrsVideoAvcFrameTraitSequenceHeaderEOF = 2,
|
||||
|
||||
SrsVideoHEVCFrameTraitPacketTypeSequenceStart = 0,
|
||||
SrsVideoHEVCFrameTraitPacketTypeCodedFrames = 1,
|
||||
SrsVideoHEVCFrameTraitPacketTypeSequenceEnd = 2,
|
||||
// CompositionTime Offset is implied to equal zero. This is
|
||||
// an optimization to save putting SI24 composition time value of zero on
|
||||
// the wire. See pseudo code below in the VideoTagBody section
|
||||
SrsVideoHEVCFrameTraitPacketTypeCodedFramesX = 3,
|
||||
// VideoTagBody does not contain video data. VideoTagBody
|
||||
// instead contains an AMF encoded metadata. See Metadata Frame
|
||||
// section for an illustration of its usage. As an example, the metadata
|
||||
// can be HDR information. This is a good way to signal HDR
|
||||
// information. This also opens up future ways to express additional
|
||||
// metadata that is meant for the next video sequence.
|
||||
//
|
||||
// note: presence of PacketTypeMetadata means that FrameType
|
||||
// flags at the top of this table should be ignored
|
||||
SrsVideoHEVCFrameTraitPacketTypeMetadata = 4,
|
||||
// Carriage of bitstream in MPEG-2 TS format
|
||||
SrsVideoHEVCFrameTraitPacketTypeMPEG2TSSequenceStart = 5,
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue