node.js - FFMPEG m3u8 编码将 TS 文件的扩展名更改为其他内容
问题描述
我正在使用以下命令将 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
我可以用上面的命令做到这一点吗?
解决方案
找到了解决办法,
有一个标志可以做到这一点。您可以使用,
'-hls_segment_filename', 'segment%d'
%d
正在递增数字,因此这会将文件保存为segment0
, segment1
, segment2
, ...
, segnemntN
.
推荐阅读
- tensorflow - Tensorflow 2.0.: ImportError: DLL load failed: 找不到指定的模块
- css - 使用中心对齐嵌套 SVG
- ios - UICollection ContentInsetAdjustment 行为修改'ghost'可重用视图而不是我的标题
- visual-studio - 如果必须通过命令行安装 MSBuild,如何获得“CL.exe”?
- typescript - 打字稿:如何使用泛型参数作为对象键
- python - 向后读取列值(标题除外)并打印所有内容直到分隔符
- python - 如何限制在 Python 中按键的次数
- c - C 头文件导致警告“ISO C 要求翻译单元至少包含一个声明”
- airflow - Airflow 超级用户与标准用户有何不同?
- spring-boot - 使用方法安全springboot