Windows上使用ffmpeg 进行视频切片

在今年的任务计划中有一项是做一个视频网站,当然其中需要的就是将mp4转 m3u8 格式,为啥要转为m3u8呢?这是因为m3u8以片段的形式储存,快进的时候拉到哪就看哪,如果是完整的mp4文件,则需要全部下载,浪费服务器带宽和用户时间。

1、下载ffmpeg

https://ffmpeg.zeranoe.com/builds/

Windows上使用ffmpeg 进行视频切片

下载完成后解压到任务目录(尽量不要有中文)
然后设置bin目录到系统环境变量(path)

2、对视频进行转码(转为MP4)

为啥要转码呢?
将视频文件转为视频编码h.264,音频编码aac格式的mp4文件

ffmpeg -i out.mp4  -c:v libx264 -strict -2 real.mp4

out.mp4 是待转码的文件(可以是其他格式,比如avi......之类的)
real.mp4 是转码输出文件
libx264 转为 h.264编码

这里我为啥要讲mp4再转码一次呢?因为我这个mp4视频文件不是h.264编码,所以需要再转一次,不然到后面切片的时候会遇到很多莫名其妙的问题。

这个过程一般比较长,根据电脑CPU和视频长度决定。当然也可以使用GPU进行转码,这样更快~

Windows上使用ffmpeg 进行视频切片

3、将MP4转换为ts格式文件(单个ts)

命令格式如下:

ffmpeg -y -i 待转换mp4文件路径 -c copy -vbsf h264_mp4toannexb 目标ts文件
ffmpeg -i real.mp4 -c copy -vbsf h264_mp4toannexb output.ts

转码成功后会生成ts文件

Windows上使用ffmpeg 进行视频切片

4、将ts切片,并生成m3u8文件

命令格式
ffmpeg -i output.ts -c copy -map 0 -f segment -segment_list playlist.m3u8 -segment_time 5 output%03d.ts
output.ts 已生成的ts文件
playlist.m3u8 待生成的m3u8文件名
5 切片时间,表示隔几秒进行切一个文件
output%03d.ts 生成切割ts文件名,output%03d.ts 代表生成output001.ts、output002.ts这样的格式,03d 可以随意修改,占位符。
这里我新建一个文件夹用了存放切片的m3u8output.ts 文件,那么命令则是

ffmpeg -i output.ts -c copy -map 0 -f segment -segment_list void/playlist.m3u8 -segment_time 5 void/output%03d.ts
Windows上使用ffmpeg 进行视频切片
Windows上使用ffmpeg 进行视频切片

这样就算切片成功了,视频被切割成以5秒大小的ts文件。
参考文章:
https://blog.csdn.net/hejjunlin/article/details/71001593(FFmpeg总结(九)用ffmpeg进行切片生成m3u8索引文件)
https://blog.csdn.net/yeyinglingfeng/article/details/7874932(使用ffmpeg将视频转为x264编码的mp4文件)

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇