2016-01-06 36 views
1

我創建了一個nodejs應用程序,它獲取rtsp流與FFMPEGOpencv3分析它。如果我在本地安裝FFMPEGopencv,它正在工作。ffmpeg失敗 - 455方法在此狀態下無效

但是現在我創建了一個包含這些庫的安裝的docker鏡像,並且我將它用作創建另一個鏡像的基礎&容器,我試圖運行我的應用程序。當我在容器中運行它時,我試圖獲得rtsp指令rtsp指令「流程設置失敗:455方法無效此狀態」

這是我如何在圖像中安裝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 

你有什麼想法,這個錯誤是什麼,以及如何解決它?我認爲它可能與安裝它們時的初始配置(FFMPEGOPENCV)有關。

感謝您的幫助

+0

您可能需要做一些試驗和錯誤。刪除'--enable-gpl --enable-avresample --enable-libopencore-amrnb \ --enable-libx264 --enable-libxvid --enable-postproc --enable-version3 \ --enable-shared - -enable-pic --extra-ldexeflags = -pie',每次移除一個開關後重新編譯。這個測試,雖然乏味,但會告訴你,如果你的一個啓用是導致錯誤。 – cube

+0

謝謝@cube。我現在遇到的問題是,我需要啓用TCP作爲傳輸方法。 Eny的想法,我怎麼可以做到這一點與啓用? –

回答

0

事實證明,有最近發佈的OpenCV的新版本修復(Opencv3.1),其採用考慮到TCP傳輸,因此通過升級到最新的我設法解決問題

相關問題