在Docker容器中接收RTSP流

时间:2018-08-07 00:28:20

标签: docker ffmpeg rtsp

我正在尝试使用ubuntu docker容器中的ffmpeg_libs解码相机rtsp流。 ffmpeg调试输出似乎表明它成功协商了rtsp-digest身份验证(即RTSP / 1.0 200 OK),并收到了SPS(nalu 7)和PPS(nalu 8),但此后什么也没有。它超时,重试等。这对我来说真的没有意义。

完全在本地编译并运行(不在docker中)的相同代码。

此外,如果我解码文件,则代码在本地和docker容器中均可正常工作。因此,基本的ffmpeg_lib解码正常工作。困难在于在docker中运行流接口。

是否通过docker接口进行了其他身份验证,或者是否有端口访问权限?我不是一个网络专家,所以我真的迷失了。

下面是ffmpeg日志,我的docker run命令是:

fn seq<I>(
    i: I,
) -> impl Future<Item = Vec<<I::Item as IntoFuture>::Item>, Error = <I::Item as IntoFuture>::Error>
where
    I: IntoIterator,
    I::Item: IntoFuture,
{
    let iter = i.into_iter();
    loop_fn((vec![], iter), |(mut output, mut iter)| {
        let fut = if let Some(next) = iter.next() {
            Either::A(next.into_future().map(|v| Some(v)))
        } else {
            Either::B(future::ok(None))
        };

        fut.and_then(move |val| {
            if let Some(val) = val {
                output.push(val);
                Ok(Loop::Continue((output, iter)))
            } else {
                Ok(Loop::Break(output))
            }
        })
    })
}

任何帮助将不胜感激。
谢谢, 韦恩

docker run -it --name VideoRx videorx:latest (also tried with -p 554)

0 个答案:

没有答案