ffmpeg快速配置文件夹下所有的MP4文件转换为.m3u8
时间: 2023-12-15 14:06:51 浏览: 31
好的,以下是一个基于FFmpeg的命令行脚本,可以快速将一个文件夹下的所有MP4文件转换为.m3u8格式:
```shell
#!/bin/bash
for file in *.mp4; do
filename="${file%.*}"
ffmpeg -i "$file" -c:v libx264 -c:a aac -f hls -hls_time 10 -hls_list_size 0 "$filename.m3u8"
done
```
您可以将这个脚本保存为一个.sh文件,然后在终端中运行`bash your_script.sh`命令来执行它。这个脚本将会遍历当前目录下的所有.mp4文件,并使用FFmpeg将它们转换为.m3u8格式的HLS流。转换后的.m3u8文件和.ts分片将会保存在每个MP4文件所在的文件夹中。
需要注意的是,此脚本假设您已经安装了FFmpeg,并将其添加到了系统的PATH环境变量中。如果您尚未安装FFmpeg,请先下载和安装它,然后再执行此脚本。
相关问题
ffmpeg强所有的视频文件转换为m3u8格式
您可以使用以下命令行使用 FFmpeg 将所有视频文件转换为 m3u8 格式:
```
for %%a in ("*.mp4") do ffmpeg -i "%%a" -c:v libx264 -c:a aac -f hls -hls_time 10 -hls_list_size 0 "%%~na.m3u8"
```
这个命令将转换所有以 .mp4 结尾的文件,并将输出文件保存为相应的 .m3u8 文件。其中,-hls_time 参数表示每个分片的时长,-hls_list_size 参数表示 m3u8 文件中包含的分片数。您可以根据需要进行调整。
使用Xabe.FFmpeg将mp4转化为m3u8格式
将mp4文件转成m3u8格式的代码片段与前面转成hls格式的类似,都是通过设置输出格式为`Format.hls`来完成。
```csharp
using Xabe.FFmpeg;
// 设置FFmpeg的路径
FFmpeg.SetExecutablesPath(@"C:\ffmpeg\bin");
// 创建一个转换上下文
var conversion = FFmpeg.Conversions.New();
// 将mp4文件转成m3u8格式
conversion.AddStream(inputFilePath)
.SetOutput(outputFilePath)
.SetOutputFormat(Format.hls)
.SetOutputParameter("-hls_time", "10")
.SetOutputParameter("-hls_list_size", "0")
.Start();
```
其中,`inputFilePath`是mp4文件的路径,`outputFilePath`是要输出的m3u8文件的路径。`-hls_time`参数表示每个ts文件的时长,单位为秒;`-hls_list_size`参数表示m3u8文件中最多包含的ts文件个数,0表示不限制。