美文网首页
HLS点播实现(H.264和AAC码流)

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

作者: 辉辉岁月 | 来源:发表于2021-08-03 16:16 被阅读0次

    前言

    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输入:

    /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输入:

    brew tap homebrew/nginx
    
    

    完成后再输入:

    brew install nginx-full
    
    

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

    brew info nginx-full
    
    
    image

    /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输入:

    brew install ffmpeg
    
    

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

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

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

    • 1、把H.264和AAC码流封装成mp4格式
    ffmpeg -i abc.h264 -i abc.aac -vcodec copy -f mp4 abc.mp4
    
    

    封装结果如下:

    • 2、把mp4视频打包成ts流
    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的直播和推流。
    这两篇在实现过程中帮助很大
    HLS点播

    相关文章

      网友评论

          本文标题:HLS点播实现(H.264和AAC码流)

          本文链接:https://www.haomeiwen.com/subject/urjevltx.html