无法在 IPTV 应用程序中使用 Android Google ExoPlayer 播放 EAC 流

Can't play EAC streams with Android Google ExoPlayer in IPTV app

我在流式传输具有 EAC 流的直播和电影时遇到问题。

10-24 22:43:57.800 1606-11797/ E/WavHeaderReader: Unsupported RIFF format: 1096173856
10-24 22:43:57.805 1606-1606/Exo Player BitRate:-1
10-24 22:43:57.820 1606-11796/ E/ExoPlayerImplInternal: Source error.
                                                                           com.google.android.exoplayer2.source.UnrecognizedInputFormatException: None of the available extractors (MatroskaExtractor, FragmentedMp4Extractor, Mp4Extractor, Mp3Extractor, AdtsExtractor, Ac3Extractor, TsExtractor, FlvExtractor, OggExtractor, PsExtractor, WavExtractor) could read the stream.
                                                                               at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractorHolder.selectExtractor(ExtractorMediaPeriod.java:924)
                                                                               at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:846)
                                                                               at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:308)
                                                                               at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
                                                                               at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
                                                                               at java.lang.Thread.run(Thread.java:841)
10-24 22:43:57.825 1606-1606/ExoPlayer-onPlayerError

有没有人遇到过这个问题?

我构建了 ffmpeg 扩展并在初始化 ExoPlayer 时设置了 EXTENSION_MODE_PREFER。

我可以检查 ExoPlayer 是否支持 EAC3 和其他像这样的流格式;

Logger.print ("FFMPEG AVAILABLE: " + FfmpegLibrary.isAvailable());

        Logger.print( "AUDIO_AAC SUPPORT: "  + FfmpegLibrary.supportsFormat(MimeTypes.AUDIO_AAC));
        Logger.print( "AUDIO_MPEG SUPPORT: "  + FfmpegLibrary.supportsFormat(MimeTypes.AUDIO_MPEG));
        Logger.print( "AUDIO_MPEG_L1 SUPPORT: "  + FfmpegLibrary.supportsFormat(MimeTypes.AUDIO_MPEG_L1));
        Logger.print( "AUDIO_MPEG_L2 SUPPORT: "  + FfmpegLibrary.supportsFormat(MimeTypes.AUDIO_MPEG_L2));
        Logger.print( "AUDIO_AC3 SUPPORT: "  + FfmpegLibrary.supportsFormat(MimeTypes.AUDIO_AC3));
        Logger.print( "AUDIO_E_AC3 SUPPORT: "  + FfmpegLibrary.supportsFormat(MimeTypes.AUDIO_E_AC3));
        Logger.print( "AUDIO_TRUEHD SUPPORT: "  + FfmpegLibrary.supportsFormat(MimeTypes.AUDIO_TRUEHD));
        Logger.print( "AUDIO_DTS SUPPORT: "  + FfmpegLibrary.supportsFormat(MimeTypes.AUDIO_DTS));
        Logger.print( "AUDIO_DTS_HD SUPPORT: "  + FfmpegLibrary.supportsFormat(MimeTypes.AUDIO_DTS_HD));
        Logger.print( "AUDIO_VORBIS SUPPORT: "  + FfmpegLibrary.supportsFormat(MimeTypes.AUDIO_VORBIS));
        Logger.print( "AUDIO_OPUS SUPPORT: "  + FfmpegLibrary.supportsFormat(MimeTypes.AUDIO_OPUS));
        Logger.print( "AUDIO_AMR_NB SUPPORT: "  + FfmpegLibrary.supportsFormat(MimeTypes.AUDIO_AMR_NB));
        Logger.print( "AUDIO_AMR_WB SUPPORT: "  + FfmpegLibrary.supportsFormat(MimeTypes.AUDIO_AMR_WB));
        Logger.print( "AUDIO_FLAC SUPPORT: "  + FfmpegLibrary.supportsFormat(MimeTypes.AUDIO_FLAC));