本文最后更新于2022年06月13日,已超过0天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
FFMPEG 它通常被称为媒体转码或流媒体的瑞士军刀。我们可以使用 FFmpeg 来执行很多功能。代码是用 C 语言编写的,并针对最佳性能进行了优化。它的命令很容易运行。一旦你熟悉了这些概念,就可以非常灵活地使用所有过滤器和选项来满足你的需求。简单来说,FFmpeg是一个免费的多媒体框架,可以运行音频和视频多种格式的录影、转换、流功能,能让用户访问几乎所有视频格式,包括mkv、flv、mov,VLC Media Player、Google Chrome浏览器都已经支持。 ffmpeg描述 ffmpeg是一个能高速转换视频与音频的转换器,同时它还能抓取实时的视频和音频。ffmpeg可以使用高质量的多相滤镜去转换任意比特率的视频。 ffmpeg可以读取任意数量的输入文件(如规范的文件、管道、网络数据流、数据抓捕设备等),通过-i 调用;同样,可以写入任意数量的输出文件,输出文件由一个纯输出文件名指定的,在写输出文件参数时,任何不能被系统识别的命令项都将会被认为是输出文件。
各个输入和输入文件,在原则上,可以包含多个不同类型的数据流(video/audio/subtitle/attachment/data),这些不同类型的数据流会依据该文件封装的格式而定。输入文件中选择哪些数据流作为输出文件的数据流也都是自动化的,若想了解可以参考ffmpeg官网文档关于Stream的章节。
在使用输入文件的索引指向命令项时,索引值是以0开始计数,如2:3指的是第三个输入文件的第四个数据流。
按照一般规则,命令项的每一个命令默认都是指向下一个文件的,所以你可以多次使用同一个命令项指向下一个文件,但也有例外,如全局命令项就应该写在最前面。
在写命令行时,不要混淆输入文件和输出文件,输入文件写在前面,输出文件写在后面,输入文件和输出文件都有各自的命令项。
本文介绍MP4转M3U8
方式一: 操作简单,但是转换效率很低
cmd 直接切片命令(参数建议看官网文档)
代码语言:javascript复制ffmpeg -i lmwa.mp4 -c:v libx264 -c:a aac -strict -2 -f hls -hls_list_size 2 -hls_time 15 lmwa.m3u8
方式二: 效率优化版,共需两步,效率大大提升
代码语言:javascript复制-- 视频整体转码ts
ffmpeg -y -i lmwa.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb outlmwa.ts
-- ts 文件切片
ffmpeg -i lmwa.ts -c copy -map 0 -f segment -segment_list outlmwa.m3u8 -segment_time 15 out15s_=.ts