Преобразование файлов M3U8 в файлы MP4 на Android

Чтобы преобразовать файлы M3U8 в файлы MP4 на Android, вы можете использовать библиотеку FFmpeg. Вот простой пример кода, который можно использовать для преобразования URL-адреса M3U8 в файл MP4:

Сначала добавьте следующие зависимости в файл build.gradle уровня приложения:

 
 

скопировать код

implementation 'com.arthenica:mobile-ffmpeg-full-gpl:4.4.LTS'

Затем можно использовать следующий метод для преобразования URL-адреса M3U8 в файл MP4:

import com.arthenica.mobileffmpeg.FFmpeg;
import com.arthenica.mobileffmpeg.FFmpegExecution;
import com.arthenica.mobileffmpeg.FFmpegExecutionCallback;

public void convertM3U8toMP4(String m3u8Url, String outputFilePath) {
    // 构建FFmpeg命令
    String[] command = new String[]{"-i", m3u8Url, "-c", "copy", outputFilePath};

    // 执行FFmpeg命令
    FFmpegExecution execution = FFmpeg.executeAsync(command, new FFmpegExecutionCallback() {
        @Override
        public void onExecutionStarted() {
            // 命令已开始执行
        }

        @Override
        public void onExecutionProgress(float progress) {
            // 命令正在执行,进度由0到1
        }

        @Override
        public void onExecutionCompleted(int exitCode) {
            // 命令已成功完成,exitCode为0
        }

        @Override
        public void onExecutionFailed(int exitCode, String outPuts) {
            // 命令执行失败,exitCode为非零值
        }

        @Override
        public void onExecutionCancelled() {
            // 命令已被取消
        }
    });

    // 取消执行时调用execution.cancel()
}

В этом методе вам необходимо передать URL-адрес M3U8 и путь к выходному файлу в качестве параметров. метод создаст команду FFmpeg и будет использовать com.arthenica.mobileffmpeg.FFmpeg.executeAsync()этот метод для ее асинхронного выполнения. Во время выполнения команды обратные вызовы можно использовать для отслеживания хода выполнения и состояния. Наконец, сохраните сгенерированный файл MP4 по указанному пути к выходному файлу.

Обратите внимание, что это всего лишь простой пример кода, в некоторых случаях может потребоваться дополнительная обработка ошибок и настройка параметров. Измените и оптимизируйте в соответствии с вашими потребностями.

おすすめ

転載: blog.csdn.net/challenge51all/article/details/130427148