太阳713 2023-05-20 10:13 采纳率: 0%
浏览 157
已结题

Android,用ijkplay播放rtp流提示缺少sdp

流是电子后视镜传过来的,rtp里是h264。用ijkplay播放rtp流,出错Unable to receive RTP payload type 96 without an SDP file,如下图。意思缺少sdp 。电子后视镜开发人员用的vlc 打开个.sdp文件打开播放的。他说没问题。这.sdp文件,放在Android项目的哪里,怎么用Android ijkplay中的方法设置上去?不要c语言 的方法

img

  • 写回答

8条回答 默认 最新

  • m0_72363083 2023-05-22 00:11
    关注

    根据您的描述,问题可能是由于您使用 IJKPlayer 播放 RTP 视频时未提供对应的 SDP 文件导致的。SDP 文件包含有关媒体流的详细信息(例如编解码器类型和参数、传输协议和端口等),没有 SDP 文件,IJKPlayer 就无法正确地解析 RTP 数据包并进行播放。

    在 Android 中,您可以将 SDP 文件存储在 assets 目录下,然后使用 IjkMediaPlayer.setOption() 方法来设置 SDP 路径,示例如下:

    java
    IjkMediaPlayer mediaPlayer = new IjkMediaPlayer();
    mediaPlayer.setDataSource("rtp://xxx.xxx.xxx.xxx:xxxxx");
    mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "probesize", "32");
    mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "flush_packets", "1");
    mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "rtsp_transport", "tcp");
    mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "overlay-format", "fcc-rv32");
    mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "framedrop", "1");
    mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_CODEC, "skip_loop_filter", "48");
    mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "max_cached_duration", "3000");
    mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "infbuf", "1");
    mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "rtsp_flags", "prefer_tcp");
    mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "analyzeduration", "2000000");
    mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "rtsp_timeout", "2000000");
    mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_CODEC, "max_cached_audio_duration", "10");
    mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "sync", "video");
    mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "sdp_file", "sdcard/video.sdp");
    mediaPlayer.prepareAsync();
    注意,上述代码中的 sdcard/video.sdp 应替换为实际的 SDP 文件路径。另外,还需要在 AndroidManifest.xml 文件中添加以下权限:

    xml

    通过以上设置,您应该能够在 IJKPlayer 中正确载入和播放 RTP 视频流了。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月27日
  • 创建了问题 5月20日

悬赏问题

  • ¥15 matlab中mjs用不了
  • ¥15 Ios抖音直播的时候如何添加自定义图片在直播间!
  • ¥60 riscv-pulpino总线上挂载axi从机
  • ¥15 ssh登录页面的问题
  • ¥50 关于在matlab上对曲柄摇杆机构上一点的运动学仿真
  • ¥15 jetson nano
  • ¥15 :app:debugCompileClasspath'.
  • ¥15 windows c++内嵌qt出现数据转换问题。
  • ¥15 stm32 串口通讯过程中的问题
  • ¥20 公众号如何实现点击超链接后自动发送文字