WIKI:https://github.com/simple-rtmp-server/srs/wiki/v1_CN_FFMPEG

一、直播流转码配置及说明

listen              1935;

max_connections     1000;

#定义一个默认的vhost

vhost __defaultVhost__ {

}

#定义一个名为v.flyfn.com的vhost,这样只对v.flyfn.com这个vhost中所有流进行转码

vhost v.flyfn.com {

transcode {

enabled     on;     #开始实时转码

ffmpeg      ./objs/ffmpeg/bin/ffmpeg;   #ffmpeg的执行文件

engine sd {      #这里通过engine定义转一个名为sd的转码引擎,这个名称在下面输出流的时候用到

enabled         on;   #开始,设置为off就是关闭

vfilter {     #对应ffmpeg中的滤镜参数,可以在这里写

v           quiet;   #减少ffmpeg的输出日志

}

vcodec          libx264; #视频编码器

vbitrate        500;   #视频比特率

vfps            25;   #视频帧率

vwidth          768;    #宽

vheight         320;    #高

vthreads        12;   #使用ffmpeg线程数

vprofile        main;  #编码等级,high、main、baseline

vpreset         medium;  #视频预设

vparams {        #ffmpeg的其他视频参数

g            100;  # 指定gop时长为4秒=100 / 25(vfps)

}

acodec          libfdk_aac;   #音频编码器

abitrate        70;     #音频比特率

asample_rate    44100;     #音频采样率

achannels       2;    #声道

aparams {    #ffmpeg中的其他音频参数

}

#转码后的流输出到那里,这里是输出到本机了。另外一种推流到vhost的方法:

            #rtmp://SRS_IP:[port]/[app]?vhost=[vhost]/[stream]

            #[vhost] 输入流的vhost

            #[port] 输入流的端口

            #[app] 输入流的app

            #[stream] 输入流的流名称

            #[engine] 转码引擎的名称

output          rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine];

}

#可以定义多个engine

engine ld {

enabled         on;

vfilter {

}

vcodec          libx264;

vbitrate        300;

vfps            25;

vwidth          640;

vheight         480;

vthreads        12;

vprofile        main;

vpreset         medium;

vparams {

}

acodec          libfdk_aac;

abitrate        70;

asample_rate    44100;

achannels       2;

aparams {

}

output          rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine];

}

}

}

二、用ffmpeg推流

./ffmpeg -re -i 'abc.rmvb' -f flv -y rtmp://v.flyfn.com:1935/live?vhost=v.flyfn.com/test

原始视频播放:rtmp://v.flyfn.com/live/test

转码流1(sd):rtmp://v.flyfn.com/live/test_sd

转码流2(ld):rtmp://v.flyfn.com/live/test_ld

三、推流到srs的vhost时的另一种方法

rtmp://SRS_IP:[port]/[app]?vhost=[vhost]/[stream]

四、如何对某一个app下的流都进行转码

listen 1935;

vhost v.flyfn.com {

transcode live{          #对形如rtmp://srs_ip:1935/live下的流进行转码

......

}

}

五、如何对某一路直播流进行转码

listen 1935;

vhost v.flyfn.com {

transcode live/livestream {          #对形如rtmp://srs_ip:1935/live/livestream进行转码

......

}

}

用SRS和FFMPEG进行直播流转码相关推荐

  1. SRS+metaRTC+FFmpeg助力直播进入webrtc直播互动新时代

    概述 直播已是一项互联网基础应用,由于用户对社交互动的强烈需求,"互动直播"已经成为直播主流,当前直播还是以rtmp为主,延迟大.抗弱网能力差等是rtmp解决不了的难题,随着web ...

  2. rtsp流转码为rtmp/http-flv流的视频监控/直播系统中,视频流路数越来越多时,服务器端对CPU、内存、网络带宽的压力越来越大的解决方法

    一.问题描述: 为了实现在浏览器中播放摄像机的视频流,所以使用了ffmpeg对摄像机的rtsp流转码再推流到流媒体服务器(nginx + rtmp + nginx-http-flv-module)的方 ...

  3. LiveNVR直播拉流转码无插件直播流媒体服务如何配置视频流水印视频上面添加水印

    LiveNVR直播拉流转码流媒体无插件直播流媒体服务如何配置视频流水印 1.通道单独配置水印文字 1.1.其它更多配置 2.所有统一配置水印文字 3.RTSP/HLS/FLV/RTMP拉流Onvif流 ...

  4. ffmpeg使用bsf后码流从avcc格式变成annex-b造成硬解异常

    ffmpeg使用bsf后码流从avcc格式变成annex-b造成硬解异常 问题的产生 第一个ffmpeg拷贝(copy)第三方的流到源站,第二个ffmpeg进程的源流为第一个ffmpeg的输出,并使用 ...

  5. 直播源码搭建教程之直播流媒体

    直播源码搭建教程之直播流媒体 前言 这段时间在搭建一个IPCamera项目服务器.视频点对点通话,客户端会查看设备端的音视频实时流.为了省流量,是通过P2P进行穿透.但是由于NAT设备的原因和IPV4 ...

  6. FFmpeg简述,源码分析,录制/压缩/水印/剪切/旋转/滤镜/美颜/上传视频等(CPU软编码和解码)

    > ffmpeg源码分析 ffmpeg源码简析(一)结构总览- https://blog.csdn.net/Louis_815/article/details/79621056 FFmpeg的库 ...

  7. 视频直播源码在Android端实现1对1音视频实时通话

    我们要使用 WebRTC 进行音视频互动时需要申请访问硬件的权限,至少要申请以下三种权限 Camera 权限 Record Audio 权限 Intenet 权限 在Android中,申请权限分为静态 ...

  8. 开发直播源码需要了解哪些原理?小白必看内容

    在直播源码开发的过程中会涉及到很多技术细节和原理,只有对这些技术细节和原理有了了解,才能实现更高效率的开发.接下来我们就一起来看一下开发直播源码需要了解哪些原理吧. [一个完整直播源码架构] [一个完 ...

  9. 实现网页直播源码的直播与视频回放功能

    流程介绍 网页直播源码直播.视频回放大致流程:获取视频流或本地音视频文件,将流推入到流媒体服务器当中,在 web 端使用合适的 js 拉流并播放音视频: 三种网页直播源码常见的流媒体协议介绍(RTMP ...

最新文章

  1. (转载)文件系统与数据库系统的区别
  2. 前端怎样获取后端生成的验证码图片,并且点击图片的时候改变验证码
  3. Java 8 - Optional实战
  4. 【贪心】逃跑(jzoj 1748)
  5. group by的使用
  6. python在函数内部有没有办法定义全局变量_主函数内部的全局变量python
  7. 上下位机串口通信 python_怎么将图片通过串口发送给下位机?
  8. ora-oracle,oracle:ora-01507错误
  9. verilog学习记(开头篇)
  10. Linux系统编程 -- 文件描述符的复制:dup()和dup2()
  11. 做出产品不难,做好产品必须高手
  12. 变桨距风力发电机液压系统设计
  13. 电脑命令教程计算机基础知识,电脑常用运行命令图文教程(DOS命令)
  14. 架构设计实践五部曲(一):架构与架构图
  15. 【Unity】Unity3D RPG游戏制作实例(二)开发思路及概要设计
  16. 推荐]该内存不能为“read”或“written”的解决方案!
  17. 油价涨涨涨 有车一族省油妙招也不断翻新
  18. 更好的 java 重试框架 sisyphus 入门简介
  19. 你好,这是你要的五彩斑斓的黑
  20. App关键字(100字符)优化的方法

热门文章

  1. python继承 子类init_Python类继承:使用自己的和父的默认值和init方法进行动态子类初始化...
  2. SpringCloud Eureka初体验
  3. MxGraph从入门到精通之1:运行HelloWorld示例程序
  4. 双指针找链表中点多种写法
  5. leetcode算法题--最长湍流子数组
  6. java http连接_Java中通过方法创建一个http连接并请求(服务器间进行通信)
  7. pythonhistogram教程_OpenCV-Python 直方图-4:直方图反投影 | 二十九
  8. iOS:弹出窗控制器:UIPopoverController
  9. 如何查看经过iOS优化的PNG图片
  10. Centos调出图形化的网络管理