Кодировка FFMPEG m3u8 изменяет расширение файлов TS на что-то другое

#node.js #ffmpeg #m3u8

#node.js #ffmpeg #m3u8

Вопрос:

Я использую приведенную ниже команду для шифрования видео MP4 в тип m3u8.

 const cmd = "ffmpeg";
const args = [
  "-i",
  `${input}`,
  "-c",
  "copy",
  "-bsf:v",
  "h264_mp4toannexb",
  "-hls_list_size",
  "0",
  "-hls_time",
  "10",
  "-hls_key_info_file",
  "enc.keyinfo",
  `output/${outputFileName}.m3u8`,
];
 

Это работает и выводит данные. но есть ли какой-либо возможный способ сообщить ffmpeg, чтобы он не добавлял .TS расширения к элементам списка воспроизведения?

Я вручную обновляю один из элементов списка воспроизведения в m3u8 файле с некоторым случайным расширением файла, и это работает.

 #EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:12
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-KEY:METHOD=AES-128,URI="http://localhost/key/video.key",IV=0x00000000000000000000000000000000
#EXTINF:10.666667,
somerandomname // <-- Here I change it and when I play in a HLS player it works. 
#EXTINF:11.666667,
output1.ts
#EXT-X-ENDLIST
 

Могу ли я сделать это с помощью приведенной выше команды?

Ответ №1:

Найдено решение,

Для этого есть флаг. Вы можете использовать,

 '-hls_segment_filename', 'segment%d'
 

%d увеличивает число, поэтому это сохранит файлы как segment0 , segment1 , segment2 , ... , segnemntN .