FFMPEG m3u8 编码将 TS 文件的扩展名更改为其他内容
FFMPEG m3u8 encoding change extension of TS files to something else
我正在使用以下命令将 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`,
];
这有效并输出 data.but 是否有任何可能的方法告诉 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
我可以用上面的命令来做吗?
找到解决方案,
有一个标志可以做到这一点。你可以使用,
'-hls_segment_filename', 'segment%d'
%d
是递增数字,因此这会将文件保存为 segment0
、segment1
、segment2
、...
、segnemntN
。
我正在使用以下命令将 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`,
];
这有效并输出 data.but 是否有任何可能的方法告诉 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
我可以用上面的命令来做吗?
找到解决方案,
有一个标志可以做到这一点。你可以使用,
'-hls_segment_filename', 'segment%d'
%d
是递增数字,因此这会将文件保存为 segment0
、segment1
、segment2
、...
、segnemntN
。