关键词:
Linux下使用FFmpeg将RTMP流转换为HLS
所需资料
- nginx
下载地址 : http://nginx.org/ - nginx-http-flv-module
下载地址 :https://github.com/winshining/nginx-http-flv-module - ffmpeg
- vlc视频播放器(windows安装方便测试)
安装FFmpeg
由于CentOS没有官方FFmpeg rpm软件包。但是,我们可以使用第三方YUM源(Nux Dextop)完成此工作。
sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
安装FFmpeg 和 FFmpeg开发包
sudo yum install ffmpeg ffmpeg-devel -y
测试FFmpeg
ffmpeg -h
配置安装nginx并添加nginx-http-flv-module到nginx中
依次安装系统相关依赖项
yum -y install unzip
yum -y install gcc-c++
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum -y install openssl openssl-devel
将nginx-http-flv-module和nginx上传并解压到/usr/local/nginx中
cd /usr/local/nginx
tar -zxvf nginx-1.8.1.tar.gz
unzip nginx-http-flv-module-1.2.6.zip
进入nginx目录下编译安装nginx
cd nginx-1.8.1
./configure --prefix=/usr/local/nginx --add-module=/usr/local/nginx/nginx-http-flv-module
make && make install
prefix为nginx的安装的目录
add-moudle为nginx-http-flv-module的目录
配置Nginx 以实现流转换
配置RTMP
rtmp
server
listen 1935;
application myapp
live on;
application live
live on; #开启实时
hls on; #开启hls
hls_path /usr/local/etc/nginx/html/multimedia/hls; #hls的ts切片存放路径
hls_fragment 2s; #本地切片长度
hls_playlist_length 6s; #HLS播放列表长度
配置HLS拉流
location /live
types
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
alias /usr/local/etc/nginx/html/multimedia/hls/;
add_header Cache-Control no-cache;
完整nginx配置
user nginx;
# 自动分配工作进程数
worker_processes auto;
# 绑定cpu
worker_cpu_affinity auto;
# 指明worker进程的ince值
worker_priority -15;
# 错误日志存放位置
error_log /var/log/nginx/error.log warn;
# pid文件存放位置
pid /var/run/nginx.pid;
events
worker_connections 1024;
accept_mutex on; # 设置单个请求只唤醒一个进程
multi_accept on; # 设置一个工作进程可接收多个新网络连接
rtmp
server
listen 1985;
application myapp
live on;
application live
live on; #开启实时
hls on; #开启hls
hls_path /home/server/hls; #hls的ts切片存放路径
hls_fragment 2s;
hls_playlist_length 6s;
http
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
server_tokens off; #隐藏版本号
client_max_body_size 50m; #调整nginx上传文件限制
keepalive_timeout 65;
#gzip on; 开启压缩
gzip on;
gzip_vary on;
gzip_buffers 16 8k;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript image/jpeg image/gif image/png application/x-protobuf;
server
listen 1997;
server_name localhost;
location /
root html;
index index.html index.htm;
error_page 500 502 503 504 /50x.html;
location = /50x.html
root html;
location /live/
types
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
alias /home/server/hls/;
add_header Cache-Control no-cache;
添加nginx软连接
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
启动nginx
nginx
使用FFmpeg进行转流
测试流地址:
rtmp://media3.scctv.net/live/scctv_800
使用ffmpeg进行转换
ffmpeg -re -i rtmp://media3.scctv.net/live/scctv_800 -c copy -f flv rtmp://127.0.0.1:1997/live/test
第一行的地址为测试地址
第二个地址为nginx中配置的rtmp中的live
第二个地址的IP需更改为nginx的服务器IP , 端口为rtmp中配置的端口
test部分为自定义 , 是hls文件夹下的.m3u8和切片的名称
测试拉流
使用vlc在windows中测试
拉流地址为 :
http://127.0.0.1:1997/live/test.m3u8
此处的test和ffmpeg转换的第二个地址末尾的test相对应
如何将实时 RTMP 视频转换为实时 mp3 Icecast 流
...直播。我可以从RTMP获取ogg音频直播并将其翻译成Icecast2并使用JPlayer在我的网站上获取。现在我使用这样的命令:/usr/local/bin/ffmpeg-re-i 查看详情
使用 FFmpeg 通过 RTMP 发送 H.264 编码流
】使用FFmpeg通过RTMP发送H.264编码流【英文标题】:SendH.264encodedstreamthroughRTMPusingFFmpeg【发布时间】:2016-11-1506:56:54【问题描述】:我关注this将序列图像编码为h.264视频。这里输出我的部分代码:intsrcstride=outwidth*4;sws_scale(convertCtx,s... 查看详情
使用ffmpeg在windows平台下推rtmp流(代码片段)
使用FFMPEG在windows平台下推rtmp流工作中习惯在Linux下面使用FFmpeg模拟推rtmp流,无奈家中的电脑都是windows系统,需要利用家中的带宽来测试流媒体服务器的性能。所以研究了一下如何在windows系统中快速推流。首先下载安装ffmpeg下... 查看详情
在不中断 rtmp 流的情况下更新 ffmpeg 过滤器
...stream【发布时间】:2021-09-1708:25:04【问题描述】:我正在使用ffmpeg读取rtmp流,添加模糊框等过滤器并创建不同的rtmp流。例如,命令如下所示:ffmpeg-i<rtmp_source_url>-filter_complex"split=2[a][b 查看详情
将 FMS RTMP 直播流转换为 BlackBerry 的 RTSP
】将FMSRTMP直播流转换为BlackBerry的RTSP【英文标题】:ConvertingFMSRTMPLivestreamtoRTSPforBlackBerry【发布时间】:2012-08-1418:56:40【问题描述】:有没有办法将RTMP实时流从FMS4.5转换为BlackBerry应用程序的RTSP?我部署了FMS4.5服务器,希望通过... 查看详情
13rtsp视频服务基于node+ffmpeg转换为flv视频服务(代码片段)
... rtsp视频服务转换为rtmp服务转换为前端可用的服务 会使用到ffmpeg来实现rtsp服务转换为rtmp服务,nginx-http-flv来实现rtmp服务转换为http-flv服务,因此前端可以直接播放视频 这里使用node作为后台服务,使用ffmpeg基于websocket协议将rt 查看详情
使用ffmpeg能否将rtsp的流转成rtmp流发出来?就如:ffmpeg-irtsp://localhost/live-ccopy-fflvrtm
参考技术Affmpeg-irtsp://localhost:8554/1234-fflvrtmp://127.0.0.1/live/stream可以的,我试过 查看详情
ffmpeg常用推流命令
...流摄像头进行直播1.如果希望将桌面录制或者分享,可以使用命令行如下:ffmpeg-favfoundation-i"1&q 查看详情
ffmpeg命令读取rtmp流如何设置超时时间(代码片段)
子标题:FFmpeg命令录制RTMP流为FLV文件时如何设置超时时间|FFmpeg命令如何解决录制产生阻塞的问题 0x001:前言今天在测试程序时遇到两个问题。Q1:ffmpeg录制RTMP流并保存为FLV文件时,推RTMP流的线程已经结束断掉了,而录制... 查看详情
RTMP 到浏览器
...方法来将RTMP流(来自IP摄像机)转换为我可以在浏览器中使用的内容。理想情况下,该服务器将从我的相机的rtmp://URL读取,重新编码流,然后以我可以在网页上的<video>标记中使用的格式提供流。不过,我的理解是HTML5... 查看详情
如何将 ffmpeg 流中的音频传输到 nginx rtmp 服务器?
...一个nginx服务器设置,带有用于视频流的rtmp插件。我正在使用ffmpeg流式传输到它,然后使用adobeflashplayer在网络浏览器上显示流。我已成功播放视频,但无法获取音频。这是我 查看详情
使用 JAVA 将 HL7 转换为 JSON
】使用JAVA将HL7转换为JSON【英文标题】:HL7toJSONconversionusingJAVA【发布时间】:2019-05-1103:40:21【问题描述】:我们有什么机制可以在JAVA中将HL7消息转换为json格式吗?我正在浏览HAPIFHIR库,但找不到任何此类API。【问题讨论】:【... 查看详情
搭建hls推流环境(代码片段)
...LC播放器启动nginx服务器,配置nginx以支持rtmp配置FFmpeg使用ffmpeg将视频文件转换成rtmp流格式输出使用VLC播放器进行拉流测试具体操作流程如下:1、cmd启动nginx服务器:nginx.exe-cconf\\nginx-win-rtmp.conf2、新开一个cmd(不... 查看详情
将 RTMP 转换为 MP4 的最佳方法
...RTMP转换为一些音频文件(例如mp4)并将其发送给用户并使用HTML5播放。你有更好的主意来做这项工作吗?我在服务器上有PHP5,但我不知道如何在HTML5兼容的音频中转换 查看详情
rtsp实时流通过rtmp推送到服务端
...了这个功能写在这里,和大家分享下。首先我想说的是:ffmpeg可以实现这个功能。ffmpeg支持rtsp协议,也支持rtmp。在这个案例中rtsp是输入,rtmp是输出,ffmpeg实现了转码的功能。下面可出一个整体思路流程图。 & 查看详情
使用 FFMpeg 将 FLV 流式传输到 RTMP,使用 H264 编解码器和 C++ API 到 flv.js
】使用FFMpeg将FLV流式传输到RTMP,使用H264编解码器和C++API到flv.js【英文标题】:streamingFLVtoRTMPwithFFMpegusingH264codecandC++APItoflv.js【发布时间】:2018-07-1216:24:17【问题描述】:我想使用OpenCV使用H264编解码器从网络摄像头流式传输实时... 查看详情
视频转换rtsp流转rtmp流播放(未完)
前言:之前的博客找的rtsp流地址,和按照red5都是为写这篇文章铺垫。 这篇文章,选择ffmepg命令把rtsp流转为rtmp,接着vlc插件测试下生成的rtmp流。最后已经配置好了red5服务器,并测试成功看到画面之后;下面就来利用red5实时... 查看详情
使用 FFMPEG 剪切部分字幕文件
】使用FFMPEG剪切部分字幕文件【英文标题】:CutpartsofsubtitlefileusingFFMPEG【发布时间】:2014-02-0413:58:54【问题描述】:我想编辑带有音频视频字幕流的输入mp4文件,我可以通过以下方式成功剪切视频和音频流:1-将每个部分转换为... 查看详情