mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2024-11-22 10:40:05 +08:00
ts/ps支持G711
This commit is contained in:
parent
b2b276029b
commit
2c9141513d
@ -1 +1 @@
|
|||||||
Subproject commit 24519a594c2c634b21fbe09fad28d54c4eba0885
|
Subproject commit abc08f61bb1250b94d252cfeaea249527912dd3b
|
@ -28,24 +28,29 @@ void TsMuxer::addTrack(const Track::Ptr &track) {
|
|||||||
case CodecH264: {
|
case CodecH264: {
|
||||||
_have_video = true;
|
_have_video = true;
|
||||||
_codec_to_trackid[track->getCodecId()].track_id = mpeg_ts_add_stream(_context, PSI_STREAM_H264, nullptr, 0);
|
_codec_to_trackid[track->getCodecId()].track_id = mpeg_ts_add_stream(_context, PSI_STREAM_H264, nullptr, 0);
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case CodecH265: {
|
case CodecH265: {
|
||||||
_have_video = true;
|
_have_video = true;
|
||||||
_codec_to_trackid[track->getCodecId()].track_id = mpeg_ts_add_stream(_context, PSI_STREAM_H265, nullptr, 0);
|
_codec_to_trackid[track->getCodecId()].track_id = mpeg_ts_add_stream(_context, PSI_STREAM_H265, nullptr, 0);
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case CodecAAC: {
|
case CodecAAC: {
|
||||||
_codec_to_trackid[track->getCodecId()].track_id = mpeg_ts_add_stream(_context, PSI_STREAM_AAC, nullptr, 0);
|
_codec_to_trackid[track->getCodecId()].track_id = mpeg_ts_add_stream(_context, PSI_STREAM_AAC, nullptr, 0);
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case CodecG711A:
|
case CodecG711A: {
|
||||||
case CodecG711U: {
|
_codec_to_trackid[track->getCodecId()].track_id = mpeg_ts_add_stream(_context, PSI_STREAM_AUDIO_G711A, nullptr, 0);
|
||||||
//todo 此处未区分G711a和G711u
|
|
||||||
_codec_to_trackid[track->getCodecId()].track_id = mpeg_ts_add_stream(_context, PSI_STREAM_AUDIO_G711, nullptr, 0);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case CodecG711U: {
|
||||||
|
_codec_to_trackid[track->getCodecId()].track_id = mpeg_ts_add_stream(_context, PSI_STREAM_AUDIO_G711U, nullptr, 0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#if defined(ENABLE_RTPPROXY)
|
#if defined(ENABLE_RTPPROXY)
|
||||||
#include "mpeg-ps.h"
|
#include "mpeg-ts-proto.h"
|
||||||
#include "RtpProcess.h"
|
#include "RtpProcess.h"
|
||||||
#include "Util/File.h"
|
#include "Util/File.h"
|
||||||
#include "Extension/H265.h"
|
#include "Extension/H265.h"
|
||||||
@ -204,19 +204,29 @@ void RtpProcess::onRtpDecode(const uint8_t *packet, int bytes, uint32_t timestam
|
|||||||
#define SWITCH_CASE(codec_id) case codec_id : return #codec_id
|
#define SWITCH_CASE(codec_id) case codec_id : return #codec_id
|
||||||
static const char *getCodecName(int codec_id) {
|
static const char *getCodecName(int codec_id) {
|
||||||
switch (codec_id) {
|
switch (codec_id) {
|
||||||
SWITCH_CASE(STREAM_VIDEO_MPEG4);
|
SWITCH_CASE(PSI_STREAM_MPEG1);
|
||||||
SWITCH_CASE(STREAM_VIDEO_H264);
|
SWITCH_CASE(PSI_STREAM_MPEG2);
|
||||||
SWITCH_CASE(STREAM_VIDEO_H265);
|
SWITCH_CASE(PSI_STREAM_AUDIO_MPEG1);
|
||||||
SWITCH_CASE(STREAM_VIDEO_SVAC);
|
SWITCH_CASE(PSI_STREAM_MP3);
|
||||||
SWITCH_CASE(STREAM_AUDIO_MP3);
|
SWITCH_CASE(PSI_STREAM_AAC);
|
||||||
SWITCH_CASE(STREAM_AUDIO_AAC);
|
SWITCH_CASE(PSI_STREAM_MPEG4);
|
||||||
SWITCH_CASE(STREAM_AUDIO_G711);
|
SWITCH_CASE(PSI_STREAM_MPEG4_AAC_LATM);
|
||||||
SWITCH_CASE(STREAM_AUDIO_G722);
|
SWITCH_CASE(PSI_STREAM_H264);
|
||||||
SWITCH_CASE(STREAM_AUDIO_G723);
|
SWITCH_CASE(PSI_STREAM_MPEG4_AAC);
|
||||||
SWITCH_CASE(STREAM_AUDIO_G729);
|
SWITCH_CASE(PSI_STREAM_H265);
|
||||||
SWITCH_CASE(STREAM_AUDIO_SVAC);
|
SWITCH_CASE(PSI_STREAM_AUDIO_AC3);
|
||||||
default:
|
SWITCH_CASE(PSI_STREAM_AUDIO_EAC3);
|
||||||
return "unknown codec";
|
SWITCH_CASE(PSI_STREAM_AUDIO_DTS);
|
||||||
|
SWITCH_CASE(PSI_STREAM_VIDEO_DIRAC);
|
||||||
|
SWITCH_CASE(PSI_STREAM_VIDEO_VC1);
|
||||||
|
SWITCH_CASE(PSI_STREAM_VIDEO_SVAC);
|
||||||
|
SWITCH_CASE(PSI_STREAM_AUDIO_SVAC);
|
||||||
|
SWITCH_CASE(PSI_STREAM_AUDIO_G711A);
|
||||||
|
SWITCH_CASE(PSI_STREAM_AUDIO_G711U);
|
||||||
|
SWITCH_CASE(PSI_STREAM_AUDIO_G722);
|
||||||
|
SWITCH_CASE(PSI_STREAM_AUDIO_G723);
|
||||||
|
SWITCH_CASE(PSI_STREAM_AUDIO_G729);
|
||||||
|
default : return "unknown codec";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -226,7 +236,7 @@ void RtpProcess::onDecode(int stream,int codecid,int flags,int64_t pts,int64_t d
|
|||||||
_stamps[codecid].revise(dts,pts,dts,pts,false);
|
_stamps[codecid].revise(dts,pts,dts,pts,false);
|
||||||
|
|
||||||
switch (codecid) {
|
switch (codecid) {
|
||||||
case STREAM_VIDEO_H264: {
|
case PSI_STREAM_H264: {
|
||||||
_dts = dts;
|
_dts = dts;
|
||||||
if (!_codecid_video) {
|
if (!_codecid_video) {
|
||||||
//获取到视频
|
//获取到视频
|
||||||
@ -251,7 +261,7 @@ void RtpProcess::onDecode(int stream,int codecid,int flags,int64_t pts,int64_t d
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case STREAM_VIDEO_H265: {
|
case PSI_STREAM_H265: {
|
||||||
_dts = dts;
|
_dts = dts;
|
||||||
if (!_codecid_video) {
|
if (!_codecid_video) {
|
||||||
//获取到视频
|
//获取到视频
|
||||||
@ -274,7 +284,7 @@ void RtpProcess::onDecode(int stream,int codecid,int flags,int64_t pts,int64_t d
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case STREAM_AUDIO_AAC: {
|
case PSI_STREAM_AAC: {
|
||||||
_dts = dts;
|
_dts = dts;
|
||||||
if (!_codecid_audio) {
|
if (!_codecid_audio) {
|
||||||
//获取到音频
|
//获取到音频
|
||||||
@ -292,10 +302,10 @@ void RtpProcess::onDecode(int stream,int codecid,int flags,int64_t pts,int64_t d
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case STREAM_AUDIO_G711: {
|
case PSI_STREAM_AUDIO_G711A:
|
||||||
|
case PSI_STREAM_AUDIO_G711U: {
|
||||||
_dts = dts;
|
_dts = dts;
|
||||||
//todo 等待陈大佬更新ts/ps解析库,现在暂时固定为G711A
|
auto codec = codecid == PSI_STREAM_AUDIO_G711A ? CodecG711A : CodecG711U;
|
||||||
auto codec = CodecG711A;
|
|
||||||
if (!_codecid_audio) {
|
if (!_codecid_audio) {
|
||||||
//获取到音频
|
//获取到音频
|
||||||
_codecid_audio = codecid;
|
_codecid_audio = codecid;
|
||||||
|
Loading…
Reference in New Issue
Block a user