我正在尝试使用 exoplayer2(版本 2.18.5)创建一个 rtsp 流。我正试图强迫播放器使用 H264。它不适用于 MimeType,因为播放器以某种方式覆盖它并改用 H265。我想我必须先请求编解码器格式,或者我必须编辑响应正文才能获得编解码器 H264。
RTSP 流的 resonse.body:
...
m=video 0 RTP/AVP 35
a=rtpmap:35 H264/90000
a=rtpmap:102 H265/90000
...
这是 exoplayer 设置的代码:
val url = cameraInfo.cameraURLScheme
val player = ExoPlayer.Builder(context).build()
// Build the media items.
val mediaItem = MediaItem.Builder().setMimeType(MimeTypes.VIDEO_H264)
.setUri(url)
.build()
val mediaSource = RtspMediaSource.Factory().createMediaSource(mediaItem)
// Add the media items to be played.
player.addMediaSource(mediaSource)
// Prepare the player.
player.prepare()
// Start the playback.
player.play()
旁注:我不能使用 H265,因为它没有 sprop-vps 参数
我已经尝试设置 Mimetype 并调试了它,mediaEncoder 仍然是 H265