Opencv ffmpeg失败-455方法在此状态下无效

Opencv ffmpeg失败-455方法在此状态下无效,opencv,ffmpeg,docker,streaming,rtsp,Opencv,Ffmpeg,Docker,Streaming,Rtsp,我创建了一个nodejs应用程序,它通过FFMPEG获取rtsp流媒体,并通过Opencv3对其进行分析。如果我在本地安装了FFMPEG和opencv,它就会工作 但现在我创建了一个docker映像,其中包含这些库的安装,我正在使用它作为基础来创建另一个映像和容器,我正在尝试在其中运行我的应用程序。当我在该容器中运行它时,我在尝试使用FFMPEG指令获取方法设置失败:455方法在此状态下无效“的rtsp流时,反复出现此错误 以下是我在图像中安装FFMPEG的方式: # -------------

我创建了一个
nodejs
应用程序,它通过
FFMPEG
获取
rtsp
流媒体,并通过
Opencv3
对其进行分析。如果我在本地安装了
FFMPEG
opencv
,它就会工作

但现在我创建了一个docker映像,其中包含这些库的安装,我正在使用它作为基础来创建另一个映像和容器,我正在尝试在其中运行我的应用程序。当我在该容器中运行它时,我在尝试使用
FFMPEG
指令获取方法设置失败:455方法在此状态下无效“
rtsp
流时,反复出现此错误

以下是我在图像中安装FFMPEG的方式:

# ---------------------- OpenCV ffmpeg ---------------------------#
RUN mkdir -p /opt/src \
 && curl -Lo /opt/src/ffmpeg-${FFMPEG_VERSION}.tar.gz \
    http://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 \
  && tar -xvf /opt/src/ffmpeg-${FFMPEG_VERSION}.tar.gz -C /opt/src \
  && cd /opt/src/ffmpeg-${FFMPEG_VERSION} \
  && ./configure --enable-gpl --enable-avresample --enable-libopencore-amrnb \
  --enable-libx264 --enable-libxvid --enable-postproc --enable-version3 \
  --enable-shared --enable-pic --extra-ldexeflags=-pie \
  && make -j $(nproc) \
  && make install \
  && ldconfig -v \
  && rm -rf /opt/src

# ---------------------- OpenCV stuff ---------------------------#
RUN mkdir -p /opt/src/opencv-${OPENCV_VERSION}/build \
  && curl -sLo /opt/src/opencv3.tar.gz \
     https://github.com/Itseez/opencv/archive/${OPENCV_VERSION}.tar.gz \
  && tar -xzvf /opt/src/opencv3.tar.gz -C /opt/src \
  && cd /opt/src/opencv-${OPENCV_VERSION}/build \
  && cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D WITH_TBB=ON \
    -D WITH_OPENMP=ON \
    -D WITH_FFMPEG=ON .. \
  && make -j "$(nproc)" \
  && make install \
  && ldconfig -v \
  && rm -rf /opt/src
你知道这个错误是什么以及如何修复它吗?我认为这可能与安装它们中任何一个的初始配置有关(
FFMPEG
OPENCV


感谢您的帮助

事实证明,最近发布的新版本OpenCV(Opencv3.1)中有一个考虑tcp传输的修复程序,因此通过升级到最新版本,我设法解决了这个问题

事实证明,最近发布的新版本OpenCV(Opencv3.1)中有一个修复程序这考虑到了tcp传输,因此通过升级到最新版本,我设法解决了这个问题

您可能需要进行一些尝试和错误处理。删除
--enable gpl--enable avresample--enable libopencore amrnb\--enable-libx264--enable libxvid--enable postproc--enable-version3\--enable shared--enable pic--extra ldexeflags=-pie
,每次删除一个开关后重新编译。这个测试虽然繁琐,但会告诉您是否是您的某个启用导致了错误。谢谢@cube。我现在遇到的问题是,我需要启用tcp作为传输方法。你知道我怎么用enables做吗?你可能需要做一些尝试和错误。删除
--enable gpl--enable avresample--enable libopencore amrnb\--enable-libx264--enable libxvid--enable postproc--enable-version3\--enable shared--enable pic--extra ldexeflags=-pie
,每次删除一个开关后重新编译。这个测试虽然繁琐,但会告诉您是否是您的某个启用导致了错误。谢谢@cube。我现在遇到的问题是,我需要启用tcp作为传输方法。你知道我怎样才能用电脑做到这一点吗?