java - 在android中下载、存储和混合.ts文件的正确方法是什么?

标签 java android android-studio http-live-streaming m3u8

我正在尝试从服务器下载流,这些流作为 block 存储在 .ts 文件中。

我想下载所有这些 .ts 文件并将它们转换为 mp4 以供离线查看。 我可以下载 .m3u8` 文件,其中包含有关分辨率的信息以及其他信息和有关 block 数量的信息。

我正在考虑下载所有 .ts 文件并将它们存储在本地存储上,然后将它们转换为 .mp4,但这将占用视频原始大小的两倍,因为它将存储 block 和原始文件,直到转换为止我认为不太好。

是否有任何方法可以一次性下载视频,例如,下载 .ts 流并存储并转换为 mp4 文件,然后删除它并重复直到最后一个文件,这样所需的空间将与原始视频文件大小。

是否有任何库或下载器可以下载这些流并自动将它们转换为 mp4 扩展名?

或者有什么更好的方法可以将这些流下载到 mp4 而不会占用资源?

最佳答案

您可以使用 FFmpeg 来完成此任务。

这里是将 HLS 播放列表(托管在远程服务器上)转换为本地 MP4 文件的命令行。

ffmpeg -re -i http://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8 -c:v copy -c:a copy -bsf:a aac_adtstoasc output.mp4

关于java - 在android中下载、存储和混合.ts文件的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51895637/

相关文章:

android - 向右滑动打开另一个 Activity

android - Jetpack Compose 中约束布局的权重

android - 在 Android Studio 中找不到 Theme.AppCompat.Light 资源

安卓工作室 : Gradle DSL method not found: 'classpath()'

Java 泛型,使用 <?扩展父类(super class)>,需要澄清

Java——私有(private)构造函数 vs final 等等

java - 只需在java中用对角线打印一个组件

Java - 函数作为参数

android - 魅族设备上 Editor.updateCursorPositionMz 出现 NullPointerException

android - **编辑** 如何在我的 android 应用程序中设置缓存清除按钮