【问题标题】:Hls videos (.m3u8 format) videos are not playing when they are placed in assets storage in offline mode in flutter,hls视频(.m3u8格式)视频在flutter离线模式下放到assets storage时不播放,
【发布时间】:2021-03-11 15:10:21
【问题描述】:

Hls 视频(.m3u8 格式)视频在 Flutter 中以离线模式放置在资产存储中时无法播放,而 .mp4 文件工作正常,我如何下载 hls 视频并通过存储在本地离线播放文件存储?

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Video Player'),
      ),
      body: ListView(
        children: [
          //m3u8 link

          ChewieDemo(
            looping: true,
            videoPlayerController: VideoPlayerController.asset(
                'videos/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8'
               
                ),
          ),
          //mp4link

          ChewieDemo(
            looping: true,
            videoPlayerController: VideoPlayerController.network(
              'https://assets.mixkit.co/videos/preview/mixkit-forest-stream-in-the-sunlight-529-large.mp4',
            ),
          )
        ],
      ),
    );
  }
}

.m3u8 文件只包含文本

#EXTM3U
#EXT-X-VERSION:5

#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",NAME="English stereo",LANGUAGE="en",AUTOSELECT=YES,URI="f08e80da-bf1d-4e3d-8899-f0f6155f6efa_audio_1_stereo_128000.m3u8"

#EXT-X-STREAM-INF:BANDWIDTH=628000,CODECS="avc1.42c00d,mp4a.40.2",RESOLUTION=320x180,AUDIO="audio"
f08e80da-bf1d-4e3d-8899-f0f6155f6efa_video_180_250000.m3u8

#EXT-X-STREAM-INF:BANDWIDTH=928000,CODECS="avc1.42c00d,mp4a.40.2",RESOLUTION=480x270,AUDIO="audio"
f08e80da-bf1d-4e3d-8899-f0f6155f6efa_video_270_400000.m3u8

#EXT-X-STREAM-INF:BANDWIDTH=1728000,CODECS="avc1.42c00d,mp4a.40.2",RESOLUTION=640x360,AUDIO="audio"
f08e80da-bf1d-4e3d-8899-f0f6155f6efa_video_360_800000.m3u8

#EXT-X-STREAM-INF:BANDWIDTH=2528000,CODECS="avc1.42c00d,mp4a.40.2",RESOLUTION=960x540,AUDIO="audio"
f08e80da-bf1d-4e3d-8899-f0f6155f6efa_video_540_1200000.m3u8

#EXT-X-STREAM-INF:BANDWIDTH=4928000,CODECS="avc1.42c00d,mp4a.40.2",RESOLUTION=1280x720,AUDIO="audio"
f08e80da-bf1d-4e3d-8899-f0f6155f6efa_video_720_2400000.m3u8

#EXT-X-STREAM-INF:BANDWIDTH=9728000,CODECS="avc1.42c00d,mp4a.40.2",RESOLUTION=1920x1080,AUDIO="audio"
f08e80da-bf1d-4e3d-8899-f0f6155f6efa_video_1080_4800000.m3u8

【问题讨论】:

    标签: flutter video-streaming flutter-layout http-live-streaming flutter-dependencies


    【解决方案1】:

    我建议您阅读有关 HLS 流式传输的工作原理的信息。 https://dougsillars.com/2017/10/26/how-hls-adaptive-bitrate-works/

    m3u8 文件链接到包含视频的 .ts 文件 - 您需要下载所有 ts 文件。

    要获取 720p 视频的 ts 文件列表 - 查看此文件:

    f08e80da-bf1d-4e3d-8899-f0f6155f6efa_video_720_2400000.m3u8
    

    【讨论】:

      【解决方案2】:

      HLS 内容只能在由网络服务器提供服务时播放,除非您使用 AVAssetDownloadURLSession 将 .m3u8 转换为 .movpkg。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-29
        • 2022-11-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多