想要做视频直播,请教一下相关的技术问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yanest
V2EX    问与答

想要做视频直播,请教一下相关的技术问题

  •  
  •   yanest 2016-11-03 09:46:47 +08:00 3285 次点击
    这是一个创建于 3343 天前的主题,其中的信息可能已经有所发展或是发生改变。

    自己大概了解了一下架构 专业摄像机 --HDMI--> USB HDMI 采集卡 --编码--> 推流服务器 -->流媒体发布服务器

    现在问题是: USB HDMI 采集卡的主机上通常是如何采集的?是用 Flash Media Encoder 然后在另外一台机器上用 ffmpeg 来推流到服务器, 还是可以直接就可以用 ffmpeg 就可以捕捉到采集卡的视频然后直接推流。

    11 条回复    2017-07-13 11:37:38 +08:00
    fxxkgw
        1
    fxxkgw  
       2016-11-03 10:17:33 +08:00
    nignx rtmp 模块
    thomaspaine
        2
    thomaspaine  
       2016-11-03 10:26:35 +08:00
    pc 端用 obs 推流到服务端,用 FME 也可以,但是功能太少了。服务端,可以用 nginx 的 rtmp 模块,可以用 red5 ,可以用 crtmpserver
    ETiV
        3
    ETiV  
       2016-11-03 10:26:37 +08:00 via iPhone
    但 USB 视频采集卡,对电脑来说,跟普通摄像头一样,都是视频输入设备。

    所以 ffmpeg 直接推问题不大

    但你难道直接将摄像头画面输出吗?不需要给画面上叠加个字幕啥的?
    yanest
        5
    yanest  
    OP
       2016-11-03 10:38:33 +08:00
    @thomaspaine 直接用 OBS 就可以完成编码和推流吗?之前听过的一版方案是 FME 输出裸流,然后用 FFMPEG 编码推流。
    @ETiV 就是想直播个年会,内嵌在微信公众号中。
    thomaspaine
        6
    thomaspaine  
       2016-11-03 10:56:10 +08:00
    @yanest 以前上学的时候搞过直播晚会,用的是采集卡+OBS ,没问题的,而且还不是 USB 采集卡,是 PCI 的板卡,接口是 SDI 。用 FME+FFMPEG 也不是不行,太麻烦了。
    cst4you
        7
    cst4you  
       2016-11-03 13:14:51 +08:00
    @yanest 一台 PC+obs 可以满足你的需求
    serve99
        8
    serve99  
       2016-11-03 18:01:59 +08:00   1
    方式 1 :
    1. 你现场布一台采集画面用的电脑(运行 FMLE ,在输入端的选项中选择采集卡,采集卡当然也接好摄像机),此时,你现场的那台电脑就取到你摄像机的画面了。
    2. 在以上的 FMLE 有一个输出选项,填入你 [流媒体服务器,假设是 rtmp://www.abc.com/live] 及 [流名称,假设是 livestream] ,就可以将你采集到的画面发到服务器进行直播了;
    3. 在你的服务器端,建一个站点,用来观看访问,假设是站点中直播观看地址是 http://www.abc.com/live.html ,你这个 live.html 中要用支持 rtmp 直播的播放器来调用你的直播画面,此时会要用到第 2 步中的 [服务器地址] 和 [流名称] (播放器的话,像国外的 flowerplayer 和国内的极酷阳光播放器,均支持 rtmp 协议流直播)。
    4. 以上完成后,就可以通过 http://www.abc.com/live.html 来观看你的直播了。

    方式 2 :
    用 OBS 来发起直播(但这个偏向于发起桌面屏幕的直播);

    方式 3 :
    用 HDMI 编码器实际也可以直接发起直播的,像电视台节目在线直播一般就是用这种的; hdmi 有一个管理界面,当中设定 [流媒体服务器] 和 [流名称] 就可以了,其他步骤与方式 1 类似。
    yanest
        9
    yanest  
    OP
       2016-11-09 14:56:48 +08:00
    @thomaspaine
    @fxxkgw
    用 nginx 的 rtmp 搭建了服务器,现在遇到一个问题,当推流端遇到网络不稳定丢包的时候, nginx rtmp 上的直播流就会僵死在上面,显示有推送流,但是没有流量。 使用 OBS 客户端没法再继续推流,需要停止等好久一阵 nginx rtmp 上的流才会自行消失,才能继续打开 obs 推流。
    配置如下:

    server {
    listen 80;
    server_name localhost;

    #charset koi8-r;

    #access_log logs/host.access.log main;

    location / {
    root html;
    index index.html index.htm;
    }

    location /stat {
    rtmp_stat all;
    rtmp_stat_stylesheet stat.xsl;
    }

    location /stat.xsl {
    root /data/nginx/nginx-rtmp-module/;
    }

    location /hls {
    types {
    application/vnd.apple.mpegurl m3u8;
    video/mp2t ts;
    }
    root html;
    add_header Cache-Control no-cache;
    }
    #error_page 404 /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root html;
    rtmp {
    server {
    listen 1935;
    # publish_time_fix off;
    application live {
    live on; #stream on live allow
    record off;
    hls on;
    hls_path /data/nginx/local/nginx/html/hls;
    allow publish all; # control access privilege
    allow play all; # control access privilege
    }
    }
    }
    thomaspaine
        10
    thomaspaine  
       2016-11-09 22:33:46 +08:00
    @yanest 我那时候搞直播是内网,网络质量不担心。如果你的网络环境差,可以考虑先推送到一个网络质量好的服务器 A 上, A 上只有 RTMP 的服务,然后直播服务器 B 从 A 上拉流过去转换成 hls 直播
    linuxvivian
        11
    linuxvivian  
       2017-07-13 11:37:38 +08:00
    如果你的前端是摄像机的话,HDMI 接口。 用采集卡的方案,那就是 PC+采集卡+直播推流软件,就是现场直播,用 PC 来链接的话,不便携,现在都是上那种硬件编码器小盒子,也不贵,直接推送 RTMP。 媒体系统的话,开源的有 red5, ngix,国外知名品牌的话,有 adobe 的 FMS, wowza 等,用国内的可以考虑 800li media server。

    要是想省事,直接用云服务平台,现在有很多,baidu 一搜索一大堆。 ;)
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1062 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 23:25 PVG 07:25 LAX 15:25 JFK 18:25
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86