FFmpeg 节点 js 将视频文件 (.mp4) 转换为 m3u8:输出格式 m3u8 不可用

FFmpeg node js convert video file (.mp4) to m3u8 : Output format m3u8 is not available

我想在 nodeJs 中将视频文件(如 .mp4 或 .avi)转换为 .m3u8。我试着用 ffmpeg 和 node-js 来做,但是那行不通:'Output format m3u8 is not available'.

这是我的 nodeJs 代码:

const ffmpegInstaller = require('@ffmpeg-installer/ffmpeg');
const ffmpeg = require('fluent-ffmpeg');

var cmd = ffmpeg('./flir_20191202T174341.mp4')
    .setFfmpegPath(ffmpegInstaller.path)
    .videoBitrate(1024)
    .videoCodec('divx')
    .format('m3u8')
    .on('end', () => {
        // ...
    })
    .on('error', err => {
        console.error(err);
    })
    .save('./file-out.m3u8');
console.log('Hello !');
console.log(cmd);

你知道我怎样才能正确地做到这一点吗?

提前致谢。

杰里米。

我找到了解决方案:

var fs = require('fs');
var ffmpeg = require('fluent-ffmpeg');

// open input stream
var infs = new ffmpeg

infs.addInput('video.mp4').outputOptions([
    '-map 0:0',
    '-map 0:1',
    '-map 0:0',
    '-map 0:1',
    '-s:v:0 2160x3840',
    '-c:v:0 libx264',
    '-b:v:0 2000k',
    '-s:v:1 960x540',
    '-c:v:1 libx264',
    '-b:v:1 365k',
    // '-var_stream_map', '"v:0,a:0 v:1,a:1"',
    '-master_pl_name master.m3u8',
    '-f hls',
    '-max_muxing_queue_size 1024',
    '-hls_time 1',
    '-hls_list_size 0',
    '-hls_segment_filename', 'v%v/fileSequence%d.ts'
]).output('./video.m3u8')
    .on('start', function (commandLine) {
        console.log('Spawned Ffmpeg with command: ' + commandLine);
    })
    .on('error', function (err, stdout, stderr) {
        console.log('An error occurred: ' + err.message, err, stderr);
    })
    .on('progress', function (progress) {
        console.log('Processing: ' + progress.percent + '% done')
    })
    .on('end', function (err, stdout, stderr) {
        console.log('Finished processing!' /*, err, stdout, stderr*/)
    })
    .run()

第 1 步:打开您的终端并为 OS X 安装包管理器 Homebrew。如果您的 PC 上没有它,您可以 运行 下面的命令来安装它.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

第二步:当Homebrew安装完成后,运行下面的命令代码安装ffmpeg。

Brew 安装 ffmpeg

第三步:现在你可以使用ffmpeg来转换文件了。你需要做的是输入如下所示的命令行,然后点击回车键,系统就会响应你的请求。

ffmpeg -i input.mp4 -profile:v baseline -level 3.0 -s 640x360 -start_number 0 -hls_time 10 -hls_list_size 0 -f hls index.m3u8

来源:https://enjoy-online-audio-video-movie.blogspot.com/2021/05/3-best-tools-for-converting-mp4-to-m3u8.html