前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用FFMPEG 实现各种格式互相转化

使用FFMPEG 实现各种格式互相转化

作者头像
田小檬
发布2022-08-31 09:00:07
1.2K0
发布2022-08-31 09:00:07
举报
文章被收录于专栏:田小檬博客田小檬博客

本文最后更新于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 out\lmwa.ts
-- ts 文件切片
ffmpeg -i lmwa.ts -c copy -map 0 -f segment -segment_list out\lmwa.m3u8 -segment_time 15 out\15s_%3d.ts
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本文介绍MP4转M3U8
    • 方式一: 操作简单,但是转换效率很低
      • 方式二: 效率优化版,共需两步,效率大大提升
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档