【问题标题】:React-Native-Video -> how to save a videoReact-Native-Video -> 如何保存视频
【发布时间】:2020-04-24 03:19:31
【问题描述】:

我目前正在使用 react-native-video 并通过包播放 HLS 视频流。 有谁知道如何将视频下载到手机图库中?

查看包没有任何方法,想知道是否有其他包可以使用

谢谢!

【问题讨论】:

    标签: react-native react-native-video


    【解决方案1】:

    HLS 的流式传输方式使数据不兼容保存到单个数据文件中。因此,您可能无法将用于演示的流中的视频保存到文件中是有充分理由的。

    另一个原因是 RN Video 组件不提供此功能。

    从流媒体内容中保存文件(例如 MP4)的工具通常与流媒体播放器完全不同,因为它们下载数据块的方式存在限制,即这些视频块用于文件。

    【讨论】:

    • 谢谢!例如,我想看看 TikTok 是如何做到的。我试图复制他们超快的几乎即时视频,我用 M3U8 (hls) 来接近它。但是现在如果用户愿意,我无法保存文件。
    • 你是怎么下载的,能解释一下吗?
    【解决方案2】:

    在我的应用程序中,我使用RNFS (react-native-fs) 下载视频,然后使用react-native-video 播放它。实现其目的的两个不同的库。

    import RNFS from'react-native-fs'
    
    const LOCAL_PATH_TO_VIDEO = Platform.OS === 'ios' ? `${RNFS.DocumentDirectoryPath}/mood-pixel-${timestamp}.mp4` : `${RNFS.ExternalDirectoryPath}/mood-pixel-${timestamp}.mp4`
    
    RNFS.downloadFile({
      fromUrl: REMOTE_URI_OF_VIDEO,
      toFile: LOCAL_PATH_TO_VIDEO,
    }).then(() => {
      console.log('successful video download! Save LOCAL_PATH_TO_VIDEO onto device for later use')
    })
    

    下载成功后,将LOCAL_PATH_TO_VIDEO保存到设备上,用来播放下载的视频。

    【讨论】:

    • 谢谢。不幸的是,因为它是 HLS 视频,所以格式是 m3u8。其他文件是分开的。所以我不能只使用 RNFS 下载 :(
    【解决方案3】:

    最后我没有一个好的解决方案。我做了一个 ffmpeg 将 hls 转换回 mp4(通过服务器)并下载(网络)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-11
      • 2019-05-24
      • 1970-01-01
      • 2019-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多