节点 js 将 mp4 转换为 m3u8 后,第一个 m3u8 ts 段不起作用

问题描述

index.js

const ffmpegPath = require('@ffmpeg-installer/ffmpeg').path;
const ffmpeg = require('fluent-ffmpeg');
const process = require('process');


const args = process.argv.slice(2);
if (args.length !== 4) {
    console.error('Incorrect number of arguments');
    process.exit(1);
  }
const startTime = args[0];
const timeDuration = args[1];
const inputFile = args[2];
const outputFile=args[3];

ffmpeg.setFfmpegPath(ffmpegPath);

ffmpeg(inputFile)
  .setStartTime(startTime)
  .setDuration(timeDuration)
  .output(outputFile)
  .outputoptions('-hls_list_size 0')
  .on('end',function(err) {
    if(!err) { console.log('conversion Done') }
  })
  .on('error',function(err){
    console.log('error: ',err)
  }).run();

这是 index.js,我通过在终端上点击命令来运行它

node index.js 5 40 ./input.mp4 ./output.m3u8

这里 5 是开始时间,40 是持续时间(以秒为单位)。该过程使用 ts 文件创建 m3u8,但未正确创建第一个 ts 文件。它以 kb 格式创建,而所有其他文件以 mb 格式创建。

enter image description here

output_test0 没有正确生成,这就是为什么在播放 m3u8 文件时,前几秒只是静态图片。此问题仅在第一个 ts 输出中发生。关于如何修复它的任何技巧?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...