FFmpeg란
음성/ 영상 정보에 대해 거의 모든 처리를 도와주는 프로그램으로
각종 디코딩, 인코딩을 지원하여 특정 코덱에 대해 설치하지 않아도 되고, 이를 통해 영상 변환, 전송 등의 기능을 제공하는 편리한 프로그램!
저는 영상 전송에 대해서만 사용해 보려고 찾아봤는데 생각보다 많은 기능들이 존재했습니다.그만큼 라이브러리/소스코드가 방대하기에 오픈소스임에도 직접적으로 사용하기에는 무리인듯 합니다.
하지만 소스를 직접 사용하지 못해도 기능에 대해서는 쉽게 사용할 수 있도록 되어있어 사용하는데에는 무리가 없었습니다.
그럼 시작!
설치및 세팅은 생각보다 간단했습니다.
<Linux>
리눅스의 경우에는
아래 두 명령어로 설치가 가능합니다.
sudo apt update
sudo apt install ffmpeg
설치가 끝난다면
ffmpeg -version
버전을 확인하여 줍시다.
ffmpeg version 4.4.2-0ubuntu0.22.04.1 Copyright (c) 2000-2021 the FFmpeg developers
built with gcc 11 (Ubuntu 11.2.0-19ubuntu1)
configuration: --prefix=/usr --extra-version=0ubuntu0.22.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
libavutil 56. 70.100 / 56. 70.100
libavcodec 58.134.100 / 58.134.100
libavformat 58. 76.100 / 58. 76.100
libavdevice 58. 13.100 / 58. 13.100
libavfilter 7.110.100 / 7.110.100
libswscale 5. 9.100 / 5. 9.100
libswresample 3. 9.100 / 3. 9.100
libpostproc 55. 9.100 / 55. 9.100
설치끝!
<Windows>
윈도에서는 조금 더 복잡하지만 시작!
윈도우는 따로 파일을 받아야 합니다. 아래로 들어가서
gyan.dev 클릭!
여기서 ffmpeg-git-full.7z을 다운로드하여 줍시다.
이제 압축을 해제해주고
bin폴더에 가면
아래와 같은 exe파일들이 있는 걸 확인해 줍시다.
다음 마지막으로 환경변수를 설정해 줍시다.
ffmpeg의 폴더를 원하는 위치로 이동시켜 주고
시스템 변수 >> path 클릭
새로 만들기에서 방금 확인한 bin폴더를 추가해 주면 끝!
이제 버전확인을 해주고
ffmpeg -version
아래처럼 나오면 끝!
ffmpeg version 6.0-full_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libvpl --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
libavutil 58. 2.100 / 58. 2.100
libavcodec 60. 3.100 / 60. 3.100
libavformat 60. 3.100 / 60. 3.100
libavdevice 60. 1.100 / 60. 1.100
libavfilter 9. 3.100 / 9. 3.100
libswscale 7. 1.100 / 7. 1.100
libswresample 4. 10.100 / 4. 10.100
libpostproc 57. 1.100 / 57. 1.100
기본적으로 리눅스에서 개발된 라이브러리이기에 조금의 과정이 더 필요했지만 윈도우에서도 쉽게 설치가 끝났습니다.
이제 기본적인 ffmpeg의 사용법을 알아보면
- mp4 영상을 avi로 변환
ffmpeg -i input.mp4 output.avi
- 해상도를 변경해 저장
ffmpeg -i input.mp4 -s 1280x720 -c:a copy output.mp4
- 비트레이트를 변경하여 저장
ffmpeg -i input.mp4 -b:v 1000k -b:a 128k output.mp4
- 원본 (input) 영상의 1분~2분 까지를 잘라 저장 >> 매우 유
ffmpeg -i input.mp4 -ss 00:01:00 -to 00:02:00 -c:v copy -c:a copy output.mp4
이렇게 영상을 수정, 편집하는 기능도 존재하고
영상을 받아줄 서버가 존재한다면 아래처럼 전송해 줄 수도 있습니다.
ffmpeg -re -i input.mp4 -c:v libx264 -preset medium -b:v 8000k -f flv rtmp://192.168.1.19/live/cam1
-re:
실시간 속도로 입력 파일을 읽습니다.
-c:v libx264:
비디오 코덱으로 H.264 (libx264)를 사용합니다.
-preset medium:
H.264 압축 프리셋을 설정합니다.
-b:v 8000k:
비디오 비트레이트를 8000 kbps로 설정합니다. 이는 비디오의 압축 레벨을 나타냅니다.
-f flv:
출력 포맷을 FLV로 설정합니다.
이 외에도 많은 기능들이 존재하지만 이번엔 여기까지만 사용해 보겠습니다!
틀린점이 있다면 댓 달아주세요!
'공부공부 > 2023 쌓여가는 나의 지식~' 카테고리의 다른 글
Detectron2(Centernet) 이미지 인식기 만들기(Linux)(1) (1) | 2023.09.21 |
---|---|
Docker 컨테이너 내부에서 모든 컨테이너 제어하기 (Docker socket) (0) | 2023.09.19 |
Ubuntu20.04에서 Docker 시작 및 사용법(2) [명령어] (0) | 2023.09.13 |
Docker container ssh로 연결해보기 (0) | 2023.09.12 |
ubuntu cuda toolkit 11.3 / 11.8 설치하기 (0) | 2023.09.11 |
댓글