keras-yolo3 icon indicating copy to clipboard operation
keras-yolo3 copied to clipboard

Encoding H264 not recognise after building open opencv manually

Open ganeshram1232 opened this issue 6 months ago • 0 comments

Dockerfile:

# Use an official Ubuntu as a parent image
FROM ubuntu:20.04
# Set environment variables to avoid user interaction during installation
ENV DEBIAN_FRONTEND=noninteractive
# Set environment variable to ensure Python output is not buffered
ENV PYTHONUNBUFFERED=1
# Install dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
    build-essential cmake git gcc g++ wget unzip pkg-config libjpeg-dev libpng-dev libtiff-dev libavcodec-dev libavformat-dev \
    libswscale-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libv4l-dev libxvidcore-dev libx264-dev libfaac-dev libfaad-dev \
    libgtk-3-dev libatlas-base-dev gfortran python3-dev python3-pip ffmpeg \
    || apt-get install -y --no-install-recommends --fix-missing
# Clean up to reduce image size
RUN apt-get clean && rm -rf /var/lib/apt/lists/*
ADD requirements.txt .
RUN pip3 install --upgrade pip && pip3 install --no-cache-dir -r requirements.txt
# Clone OpenCV and OpenCV contrib repositories
RUN git clone https://github.com/opencv/opencv.git && \
    git clone https://github.com/opencv/opencv_contrib.git
# Create a build directory
RUN mkdir -p /opencv/build
# Set the working directory
WORKDIR /opencv/build
# Configure the build with CMake
RUN cmake -D CMAKE_BUILD_TYPE=Release \
          -D CMAKE_INSTALL_PREFIX=/usr/local \
          -D OPENCV_EXTRA_MODULES_PATH=/opencv_contrib/modules \
          -D PYTHON3_EXECUTABLE=$(which python3) \
          -D BUILD_opencv_videoio_ffmpeg=ON \
          -D WITH_FFMPEG=ON \
          -D BUILD_EXAMPLES=OFF ..
# Compile and install OpenCV
RUN make -j$(nproc) && make install && ldconfig
# Clean up
RUN rm -rf /opencv /opencv_contrib

above is my dockerfile, when i use h264 as encoding error:

OpenCV: FFMPEG: tag 0x34363268/'h264' is not supported with codec id 27 and format 'mp4 / MP4 (MPEG-4 Part 14)'
OpenCV: FFMPEG: fallback to use tag 0x31637661/'avc1'
[h264_v4l2m2m @ 0xffff80a5a9d0] Could not find a valid device
[h264_v4l2m2m @ 0xffff80a5a9d0] can't configure encoder
[ERROR:[email protected]] global cap_ffmpeg_impl.hpp:3194 open Could not open codec h264_v4l2m2m, error: Unspecified error (-22)
[ERROR:[email protected]] global cap_ffmpeg_impl.hpp:3211 open VIDEOIO/FFMPEG: Failed to initialize VideoWriter
[ WARN:[email protected]] global cap.cpp:643 open VIDEOIO(CV_IMAGES): raised OpenCV exception:

OpenCV(4.10.0) /io/opencv/modules/videoio/src/cap_images.cpp:274: error: (-215:Assertion failed) number < max_number in function 'icvExtractPattern'

not sure how to fix it tried multiple ways but nothing working. Kindly help me here and suggest me any changes here how can i install opencv so that i can use h264. I need to use opencv because i need to play the output video in UI. also less in size

ganeshram1232 avatar Aug 05 '24 02:08 ganeshram1232