修复 mpeg extra data相关bug

This commit is contained in:
xia-chu 2023-12-09 14:49:53 +08:00
parent 02b296c85c
commit b80601e020
2 changed files with 8 additions and 14 deletions

View File

@ -59,9 +59,9 @@ paced_sender_ms=0
#是否开启转换为hls(mpegts)
enable_hls=1
#是否开启转换为hls(fmp4)
enable_hls_fmp4=0
enable_hls_fmp4=1
#是否开启MP4录制
enable_mp4=0
enable_mp4=1
#是否开启转换为rtsp/webrtc
enable_rtsp=1
#是否开启转换为rtmp/flv
@ -287,7 +287,7 @@ port=1935
#rtmps服务器监听地址
sslport=0
# rtmp是否直接代理模式
directProxy=1
directProxy=0
#h265 rtmp打包采用增强型rtmp标准还是国内拓展标准
enhanced=1
@ -378,7 +378,7 @@ authBasic=0
#如果你是rtsp推拉流但是webrtc播放也建议关闭直接代理模式
#因为直接代理时rtp中可能没有sps pps,会导致webrtc无法播放; 另外webrtc也不支持Single NAL Unit Packets类型rtp
#默认开启rtsp直接代理rtmp由于没有这些问题是强制开启直接代理的
directProxy=1
directProxy=0
#rtsp必须在此时间内完成握手否则服务器会断开链接单位秒
handshakeSecond=15
#rtsp超时时间如果该时间内未收到客户端的数据

View File

@ -40,10 +40,7 @@ bool MpegMuxer::addTrack(const Track::Ptr &track) {
if (track->getTrackType() == TrackVideo) {
_have_video = true;
}
auto extra_data = track->getExtraData();
_codec_to_trackid[track->getCodecId()] = mpeg_muxer_add_stream((::mpeg_muxer_t *)_context, mpeg_id,
extra_data ? extra_data->data() : nullptr,
extra_data ? extra_data->size(): 0);
_codec_to_trackid[track->getCodecId()] = mpeg_muxer_add_stream((::mpeg_muxer_t *)_context, mpeg_id, nullptr, 0);
return true;
}
@ -69,19 +66,16 @@ bool MpegMuxer::inputFrame(const Frame::Ptr &frame) {
}
case CodecAAC: {
if (frame->prefixSize() == 0) {
WarnL << "必须提供adts头才能mpeg-ts打包";
return false;
}
CHECK(frame->prefixSize(), "Mpeg muxer required aac frame with adts heade");
}
default: {
if (!_have_video) {
//没有视频时才以音频时间戳为TS的时间戳
// 没有视频时才以音频时间戳为TS的时间戳
_timestamp = frame->dts();
}
if(frame->getTrackType() == TrackType::TrackVideo){
if (frame->getTrackType() == TrackType::TrackVideo) {
_key_pos = frame->keyFrame();
_timestamp = frame->dts();
}