如何让 exoplayer2 在 Kotlin Android 中使用 H264 编解码器而不是 H265?

问题描述 投票:0回答:0

我正在尝试使用 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

android kotlin rtsp exoplayer exoplayer2.x
© www.soinside.com 2019 - 2024. All rights reserved.