前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HLS点播实现(H.264和AAC码流)

HLS点播实现(H.264和AAC码流)

作者头像
落影
发布2018-04-27 16:56:17
2.8K1
发布2018-04-27 16:56:17
举报
文章被收录于专栏:落影的专栏落影的专栏

前言

使用VideoToolbox硬编码H.264

使用VideoToolbox硬解码H.264

使用AudioToolbox编码AAC

使用AudioToolbox播放AAC

在前面我们介绍了从麦克风采集声音并用AudioToolbox编码成AAC码流从摄像头采集图像并用VideoToolbox编码成H.264码流,这次我们不使用VideoToolbox和AudioToolbox播放音视频,而是把这两个格式的文件打包成TS流,并用通过HLS协议在浏览器播放。

核心思路

用FFmpeg把H.264和AAC码流封装成mp4格式再打包成TS流,把生成的ts和m3u8文件放到Nginx的服务器目录下,用Safari访问对应的m3u8文件实现HLS的点播。

效果展示

具体步骤

1、安装Homebrow(已安装的看下一步)

Homebrew(brew缩写)是Mac的上安装和卸载软件的管理工具(类似其他系统的yum和apt-get),Homebrow的官方地址

在terminal输入:

代码语言:javascript
复制
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

通过brew -h,我们看看brew的常用指令:

  • brew search 搜索;
  • brew install 安装;
  • brew remove 卸载;
  • brew info 查看;
2、安装Nginx(已安装的看下一步)

Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器。

先glone nginx项目到本地,在terminal输入:

代码语言:javascript
复制
brew tap homebrew/nginx

完成后再输入:

代码语言:javascript
复制
brew install nginx-full

最后用brew info看看是否安装成功和nginx的相关信息

代码语言:javascript
复制
brew info nginx-full

/usr/local/etc/nginx/nginx.conf (配置文件路径)

/usr/local/var/www (服务器默认路径)

/usr/local/Cellar/ (安装路径)

open -t /usr/local/etc/nginx/nginx.conf 可以用文本编辑器打开配置文件

nginx -s reload 重新加载配置

nginx -s reopen 重新打开log

nginx -s stop 停止nginx

nginx -s quit 退出nginx

如果在修改配置文件,重启遇到 [error] open() "/usr/local/var/run/nginx.pid" failed 可以用下面的命令重新加载配置 nginx -c /usr/local/etc/nginx/nginx.conf

接着启动Nginx,在terminal输入:nginx

打开Safari输入http://localhost:8080,检查是否安装nginx成功,正常页面会有welcome to nginx!

ps -ef | grep nginx 可以查看当前nginx进程pid

3、安装FFmpeg(已安装的看下一步)

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

在terminal输入:

代码语言:javascript
复制
brew install ffmpeg

再通过brew info ffmpeg查看是否安装成功。

4、打包ts流并放入服务器

FFmpeg的打包指令来源--FFmpeg常用命令汇总

  • 1、把H.264和AAC码流封装成mp4格式
代码语言:javascript
复制
ffmpeg -i abc.h264 -i abc.aac -vcodec copy -f mp4 abc.mp4

封装结果如下:

  • 2、把mp4视频打包成ts流
代码语言:javascript
复制
ffmpeg -i abc.mp4 -c:v libx264 -c:a copy -f hls abc.m3u8

打包结果如下:

  • 3、复制这三个文件到/usr/local/var/www路径下 (可以用finder直接复制,也可以用cp命令)
  • 4、用Safari打开http://localhost:8080/abc.m3u8 播放。

总结

HLS的点播已实现,下一步尝试进行HLS的直播和推流。

这两篇在实现过程中帮助很大

Nginx的搭建

HLS点播

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016.09.20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 核心思路
  • 效果展示
  • 具体步骤
    • 1、安装Homebrow(已安装的看下一步)
      • 2、安装Nginx(已安装的看下一步)
        • 3、安装FFmpeg(已安装的看下一步)
          • 4、打包ts流并放入服务器
          • 总结
          相关产品与服务
          云点播
          面向音视频、图片等媒体,提供制作上传、存储、转码、媒体处理、媒体 AI、加速分发播放、版权保护等一体化的高品质媒体服务。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档