如何通过ffplay查看从mkvserver生成的流?

时间:2019-06-10 07:09:05

标签: ffmpeg live-streaming mkv

我想从一个来源(ffmpeg)实时流传输到我正在使用mkvserver的多个客户端。 我可以按照以下步骤从ffmpeg(客户端)到mkvserver(服务器)实时播放网络摄像头:

在服务器上:

.dropdown-submenu {
  position: relative;
}

.dropdown-submenu .dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: -1px;
}

在客户端上:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">

<nav class="navbar navbar-default navbar-fixed-top">
    <div class="container">
        <!-- Brand and toggle get grouped for better mobile display -->
        <div class="navbar-header page-scroll">
            <button type="button" class="navbar-toggle" data-toggle="collapse"
                    data-target="#bs-example-navbar-collapse-1">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="#page-top">Name</a>
        </div>

        <!-- Collect the nav links, forms, and other content for toggling -->
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
            <ul class="nav navbar-nav navbar-right">
                <li class="hidden">
                    <a href="#page-top"></a>
                </li>
                <li class="page-scroll">
                    <a href="#portfolio">Portfolio</a>
                </li>
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Games <span class="caret"></span></a>
                    <ul class="dropdown-menu">
                        <li><a href="/Spikes" target="_blank">Avoid The Spikes</a></li>
                        <li><a href="/SpaceShooter" target="_blank">Space Shooter</a></li>
                        <!--<li role="separator" class="divider"></li>-->
                        <!--<li class="dropdown-header">Nav header</li>-->
                        <!--<li><a href="#">Separated link</a></li>-->
                    </ul>
                </li>
                </ul>
                </div>
</div>

要查看服务器上的源代码流,我将nc -l <port-number> | ./server 用作:

ffmpeg -f avfoundation -framerate 30 -i 0 -b 900k -f matroska -r 20 tcp://<ip-address>:<port-number>

但是我得到了ffplay。请提出一种通过ffplay tcp://<ip-address>:<port> 查看服务器上生成的流的方法。谢谢!

1 个答案:

答案 0 :(得分:1)

让我重述一下。

您正在使用ffmpeg从客户端流

ffmpeg -f avfoundation -framerate 30 -i 0 -b 900k -f matroska -r 20 tcp://<ip-address>:<port-number>

通过TCP在某个端口上使用NetCat侦听的服务器。

nc -l <port-number>

您正在将NetCat outPut(客户端蒸汽)传送到Matroska Server Mk2(./ server),后者可以实时over http on all interfaces on port 8080为流提供服务。

nc -l <port-number> | ./server

所以我认为ffplay应该通过端口8080中的http连接以查看Matroska Server Mk2(./server)的输出。

ffplay http://ip-address:8080