ffmpeg 失败 - 455 方法在此状态下无效
ffmpeg failed - 455 Method Not Valid in This State
我创建了一个 nodejs
应用程序,它使用 FFMPEG
获取 rtsp
流式传输,以便使用 Opencv3
对其进行分析。如果我在我的本地安装 FFMPEG
和 opencv
它就可以工作了。
但现在我创建了一个 docker 图像,其中包含这些库的安装,我将其用作创建另一个图像和容器的基础,我正在尝试 运行 我的应用程序。当我 运行 它在那个容器中时,我在尝试使用 的 FFMPEG
指令获取 rtsp
流时一遍又一遍地收到此错误=35=].
这就是我在图像中安装 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 传输的修复程序,所以通过升级到最新版本我设法解决了这个问题
我创建了一个 nodejs
应用程序,它使用 FFMPEG
获取 rtsp
流式传输,以便使用 Opencv3
对其进行分析。如果我在我的本地安装 FFMPEG
和 opencv
它就可以工作了。
但现在我创建了一个 docker 图像,其中包含这些库的安装,我将其用作创建另一个图像和容器的基础,我正在尝试 运行 我的应用程序。当我 运行 它在那个容器中时,我在尝试使用 的 FFMPEG
指令获取 rtsp
流时一遍又一遍地收到此错误=35=].
这就是我在图像中安装 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 传输的修复程序,所以通过升级到最新版本我设法解决了这个问题