我正在尝试使用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)