日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

用 ffmpeg + m3u8-segment 将h264的ES流转换成m3u8的过程记录

發布時間:2025/7/25 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用 ffmpeg + m3u8-segment 将h264的ES流转换成m3u8的过程记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

from:http://blog.chinaunix.net/uid-8489474-id-4538230.html


蘋果公司的?HLS(HTTP Live Streaming) 使用的是m3u8這種格式的傳輸協議,最近因工作需要對它進行了研究,
完成了一個最簡單的demo,即HLS的服務器,可使用VLC來進行播放。
在這記錄下過程:

一. CentOS6?Linux上編譯ffmpeg
1. 源碼下載ffmpeg-2.4.2.tar.bz2,下載地址:http://ffmpeg.org/releases/ffmpeg-2.4.2.tar.bz2
2. 編譯時用到了x264,所以同時也下載last_x264.tar.bz2,下載地址:ftp://ftp.videolan.org/pub/x264/snapshots/last_x264.tar.bz2
3. 先編譯x264:
./configure --disable-asm --enable-shared
make
make install?
最后會安裝在:

4. 編譯ffmpeg:
./configure --disable-yasm --enable-libx264 --enable-gpl --enable-shared --prefix=/usr/local/ffmpeg
如果不先安裝x264,則不能使用?--enable-libx264
make
make install
最后會安裝在:

我這默認情況下,ffmpeg可執行文件找不到so的路徑,所以新增了ld.so.conf:


5.?將一個es流的h264文件轉換成ts流:
/usr/local/ffmpeg/bin/ffmpeg -i /root/720p.es.h264 -c:v libx264 -c:a -o /tmp/720p.ts

二.?CentOS6?Linux上編譯m3u8-segment:
1. 下載m3u8-segmenter-master.zip,下載地址:https://github.com/johnf/m3u8-segmenter/archive/master.zip
2. 解壓編譯,但./configure時,始終報告:
checking for FFMPEG... no
configure: error: Package requirements (libavformat libavcodec libavutil) were not met:
No package 'libavformat' found
No package 'libavcodec' found
No package 'libavutil' found
所以,直接用命令行編譯了:
gcc -Wall -g -I/usr/local/ffmpeg/include ?m3u8-segmenter.c -o segmenter -L/usr/local/ffmpeg/lib -lavformat?
得到了:segmenter

3. 使用開始創建好的ts文件:720p.ts,生成m3u8:
./segmenter -i /tmp/720p.ts -d 10 -p onedemo -m /tmp/720p.m3u8 -u http://192.168.8.239/videox/
具體參數直接看幫助即可,它會將720p.ts切成多份ts文件。

然后,將生成好的m3u8文件和這多份ts,布署在
WEB服務器就可以了。
但不論是ngnix,還是在IIS,僅僅將上面這些文件拷到磁盤目錄,是不行的,還要做MIME的映射:
即將 .m3u8和 .ts 指定好類型
application/x-mpegURL ? ? ? m3u8; ?
video/MP2T ? ? ? ? ? ? ? ? ?ts; ?



最后就可以用VLC直接網絡播放了。



順帶在這粘一下從原始的es流中截取一張jpg圖片的命令:
./ffmpeg ?-i /root/720p.es.h264 -f image2 -ss 1 -vframes 1 -s 352*288 /tmp/one1.jpg

-ss參數后跟的時間有兩種寫法,hh:mm:ss 或直接寫秒數 :
-ss 00:01:00 -vframes 1?or?-ss 60 -vframes 1
這樣輸出的圖片是相同的。

總結

以上是生活随笔為你收集整理的用 ffmpeg + m3u8-segment 将h264的ES流转换成m3u8的过程记录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。