前言
使用VideoToolbox硬編碼H.264
使用VideoToolbox硬解碼H.264
使用AudioToolbox編碼AAC
使用AudioToolbox播放AAC
在前面我們介紹了從麥克風采集聲音并用AudioToolbox編碼成AAC碼流和從攝像頭采集圖像并用VideoToolbox編碼成H.264碼流啃匿,這次我們不使用VideoToolbox和AudioToolbox播放音視頻,而是把這兩個格式的文件打包成TS流择懂,并用通過HLS協(xié)議在瀏覽器播放癌淮。
核心思路
用FFmpeg把H.264和AAC碼流封裝成mp4格式再打包成TS流,把生成的ts和m3u8文件放到Nginx的服務器目錄下肉渴,用Safari訪問對應的m3u8文件實現HLS的點播阐污。
效果展示
具體步驟
1溺忧、安裝Homebrow(已安裝的看下一步)
Homebrew(brew縮寫)是Mac的上安裝和卸載軟件的管理工具(類似其他系統(tǒng)的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
/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 播放堆生。