ffmpeg mp4切片成ts之后转成m3u8
时间: 2023-11-15 18:16:12 浏览: 182
您可以使用以下命令将MP4视频切片成TS并转换为M3U8格式:
```
ffmpeg -i input.mp4 -c:v libx264 -c:a aac -f hls -hls_time 10 -hls_list_size 0 output.m3u8
```
其中,`-i input.mp4`指定输入文件为`input.mp4`;`-c:v libx264`和`-c:a aac`指定视频和音频编码器为H.264和AAC;`-f hls`指定输出格式为HLS;`-hls_time 10`指定每个TS切片的时长为10秒;`-hls_list_size 0`指定M3U8列表中包含所有切片。
运行该命令后,将会生成名为`output.m3u8`的M3U8文件和一系列TS切片文件。
相关问题
ffmpeg实现mp4转m3u8
ffmpeg是一个开源的跨平台多媒体处理工具,可以实现将MP4视频文件转换为M3U8格式。以下是一种常见的使用ffmpeg实现MP4转M3U8的方法:
1. 首先,将MP4文件切片成TS格式,创建M3U8清单。可以使用以下命令来实现:
```
ffmpeg -i demo.mp4 -profile:v baseline -level 3.0 -start_number 0 -hls_time 10 -hls_list_size 0 -f hls demo.m3u8
```
这个命令将会把demo.mp4文件切片成TS格式,并生成一个名为demo.m3u8的M3U8清单文件。
2. 如果需要批量执行MP4转M3U8操作,可以使用像引用中提供的PHP脚本一样的方法。这个脚本将遍历一个视频文件数组,针对每个视频文件执行MP4转M3U8的操作。
3. 如果已经拥有一个包含TS清单的M3U8文件,可以使用以下命令将其转换为MP4文件:
```
ffmpeg -i https://xxx.com/index.m3u8 -acodec copy -vcodec copy -absf aac_adtstoasc xxx.mp4
```
这个命令将会下载并解析名为index.m3u8的M3U8文件,并将其中的TS流合并为一个MP4文件,保存为xxx.mp4。
总结起来,FFmpeg可以通过切片MP4文件并生成M3U8清单文件来实现MP4转M3U8的功能。同时,也可以通过解析包含TS清单的M3U8文件来将其转换为MP4文件。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [使用ffmpeg进行mp4与m3u8之间转换](https://blog.csdn.net/shamqu/article/details/114042996)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
使用ffmpeg将视频"1.mp4",要求在ubuntu下,同时切片为"1080p,720p,480p"的m3u8切片,视频编码格式为"H.264", m3u8文件分别放在”1080p,720p,480p“文件夹下,每个分片的时长为20秒,请提供参数
以下是使用ffmpeg将视频切片为"1080p,720p,480p"的m3u8切片的命令:
```
ffmpeg -i 1.mp4 -c:v libx264 -preset veryfast -c:a copy -hls_time 20 -hls_playlist_type vod -hls_segment_filename "1080p/%03d.ts" -b:v 5M -s 1920x1080 -f hls 1080p/index.m3u8 -c:v libx264 -preset veryfast -c:a copy -hls_time 20 -hls_playlist_type vod -hls_segment_filename "720p/%03d.ts" -b:v 3M -s 1280x720 -f hls 720p/index.m3u8 -c:v libx264 -preset veryfast -c:a copy -hls_time 20 -hls_playlist_type vod -hls_segment_filename "480p/%03d.ts" -b:v 1M -s 854x480 -f hls 480p/index.m3u8
```
解释如下:
- `-i 1.mp4`:输入的视频文件名为"1.mp4"。
- `-c:v libx264 -preset veryfast -c:a copy`:视频编码格式为"H.264",使用libx264编码器,编码速度为快速,音频格式不变。
- `-hls_time 20`:每个分片的时长为20秒。
- `-hls_playlist_type vod`:m3u8文件的类型为VOD(Video on Demand)。
- `-hls_segment_filename "1080p/%03d.ts"`:每个分片的文件名为"1080p/001.ts","1080p/002.ts"等。
- `-b:v 5M -s 1920x1080`:编码后的视频比特率为5M,分辨率为1920x1080。
- `-f hls 1080p/index.m3u8`:输出为hls格式,m3u8文件的名称为"1080p/index.m3u8"。
- 同理,"720p/index.m3u8"和"480p/index.m3u8"分别对应720p和480p的分辨率和输出路径。
注意:在运行命令前,需要在当前目录下创建"1080p"、"720p"、"480p"三个文件夹,并保证文件夹具有写入权限。
阅读全文