using FFMPEG to setup HLS server on Ubuntu

1. environment setup in Linux OS
  1). install libx264 to support h264 encoder
      sudo apt-get install libx264-dev
      
  2). install FFMPEG with libx264 library
      sudo apt-get install ffmpeg
      
  3). install VLC into the OS
      sudo apt-get install VLC


2. setup TS server using VLC
   using the vlc transcode commond as before
   vlc -vvv udp://@239.192.58.3:1234 --network-caching=10 --sout 
   '#transcode{vcodec=h264,venc=x264{keyint=25,idrinit=25,bframes=0,
   ref=1,hrd=cbr,crf=28,vb=4500,preset=ultrafast,tune=zerolatency,vbv-maxrate=1200},
   fps=25.00,threads=48,deinterlace,audio-sync}:udp{caching=10,mux=ts,dst=192.168.0.1:5050,name="testTS1"}'
   
3. using ffmpeg to receive the TS & slice it into small TS file indexed by m3u8 file(we can also use other parameters, such as size -s)

   ffmpeg -re -i udp://@ip:port -vcodec libx264 -acodec aac -strict -2 -segment_time 10 -threads 24 -f hls webURL

比如:m3u8-segmenter -i udp://@:1234 -t 8 -d 5 -n 100 -p test -m test.m3u8 -u /test/

   
   -i --input file path or URL
   -vcodec   --video codec
   -acodec   --audio codec
   -segment_time --ts duration time
   -threads --number of threads
   -f     --hls

   webURL --the address which clients can access.such as http://192.168.0.8/videos/test.m3u8


搭建X264环境

1. x264
  1). download the newest code:
     git clone git://git.videolan.org/x264.git
   
  2). configure the x264:
     ./configure --enable-shared
     
  3). make && sudo make install
   
2. ffmpeg
  1).download the newest code:
   git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
   
  2). configure the ffmpeg(if we don't needs AAC, we don't need "--enable-libfaac --enable-libfaad --enable-libmp3lame")
   ./configure --enable-gpl --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-libx264
   
  3).make && sudo make install

FFmpeg是一款强大的多媒体处理工具,可以用来完成各种视频音频处理任务,其中包括将RTSP流转换成HLS流。 RTSP(实时流媒体传输协议)是一种用于实时数据传输的网络协议,常用于视频流的传输。HLS(HTTP Live Streaming)是一种流媒体传输协议,可以将视频切分为多个小文件,并通过HTTP协议分段传输。 要实现RTSP转HLS,首先需要安装FFmpeg工具。在安装完毕后,可以使用以下命令行参数来进行转换: ```shell ffmpeg -i rtsp://source_url -c:v copy -c:a copy -hls_segment_type mpegts -hls_time 10 -hls_list_size 0 -f hls output.m3u8 ``` 上述命令中,使用`-i`参数指定RTSP输入源的URL,`-c:v copy`和`-c:a copy`表示不对视频和音频进行编码,直接复制到HLS输出中。 `-hls_segment_type mpegts`指定输出的HLS段文件类型为`mpegts`,`-hls_time 10`表示每个HLS段的时长为10秒,`-hls_list_size 0`表示不限制目标播放列表的最大文件数量。 最后使用`-f hls`参数指定输出格式为HLS,并指定输出文件名为`output.m3u8`。 执行上述命令后,FFmpeg会将RTSP流转换成HLS流。输出的`output.m3u8`文件是一个HLS播放列表文件,其中包含了各个切片文件的URL地址。 通过将`output.m3u8`和切片文件(.ts文件)部署在HTTP服务器上,即可使用支持HLS协议的播放器进行在线播放。 需要注意的是,转换过程中可能会出现一些兼容性或格式方面的问题。在使用FFmpeg进行RTSP转HLS时,可以根据具体需求调整命令行参数以达到最佳效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值