IFFmpeg. 콘솔 유틸리티 FFmpeg용 그래픽 셸입니다. mp4로 변환

괜찮은 기능에도 불구하고 그래픽 인터페이스가 없어 명령줄에서 작업해야 하는 특정 종류의 응용 프로그램이 있는데, 그 자체로는 그리 쉽지 않습니다. 그렇기 때문에 다음 사용자를 위해 명령줄익숙하지 않은 타사 개발자는 종종 그래픽 쉘을 작성하여 유사한 응용 프로그램. 오늘 우리는 iFFmpeg- 쉘 콘솔 애플리케이션 FFmpeg는 미디어 파일 간 변환 측면에서 인상적인 기능으로 유명합니다.

iFFmpeg는 "전체" 프로그램이 아닌 셸일 뿐이므로 FFmpeg 유틸리티 자체는 패키지에 포함되어 있지 않으며 사용자가 이를 추가로 다운로드해야 한다는 점을 명심해야 합니다. 프로그램이 이미 시스템에 있으면 iFFmpeg 설정에서 프로그램 경로를 지정하는 것만으로도 충분합니다.

iFFmpeg 인터페이스는 러시아어를 포함한 8개 언어로 현지화되었습니다. 번역은 매우 유능하게 이루어졌으며 실제로 불평할 것이 없습니다. 프로그램 창은 크기가 고정되어 있으며 변환을 위해 소스 파일을 끌어다 놓을 수 있는 하나의 큰 필드와 아이콘이 모두 동일한 색상 스타일로 만들어진 작은 도구 모음으로 구성됩니다. 일부 아이콘은 매우 유익하며, 눈이 마주치자마자 그 목적을 즉시 추측할 수 있는 반면, 다른 아이콘은 너무 이상해 보여서 해당 기능에 대한 힌트를 기다려야 합니다(특히 이는 병합 기능과 관련됩니다). 미디어 파일, 출력 형식 선택, FFmpeg 사용 버전에 대한 정보 표시).

소스 파일은 드래그 앤 드롭뿐만 아니라 Finder 파일 선택 창을 통해 "클래식" 방식으로도 추가할 수 있습니다. 이는 iFFmpeg의 기능과 직접적인 관련이 없지만 이 프로그램이 다음을 포함한 많은 오디오 및 미디어 파일과 함께 작동한다는 점은 주목할 가치가 있습니다. mp4, m4v, avi, mov, ts, m2ts, dv, webm, wmv, flv, vob, ogg, mkv, 3gp, rm, cavs, mp3, m4a, wav, flac, ac3, wma. 그러나 iFFmpeg는 콘텐츠가 준비되는 장치의 사양을 고려하여 미디어 파일을 한 형식 또는 다른 형식으로 변환하기 위해 미리 만들어진 설정이 포함된 인상적인 사전 설정(54개 옵션) 목록을 자랑합니다.

모든 프리셋의 설정은 변경될 수 있으며, 프리셋 자체도 사용자 옵션으로 다시 작성할 수 있으며 최대 10개까지 가능합니다. 설정 자체는 다양한 미디어 변환기를 사용하는 모든 사람에게 친숙한 구성인 기본 설정과 숙련된 사용자라도 다양성을 잃을 수 있는 고급 설정으로 구분됩니다.

이와 별도로 비디오 시퀀스에 사용자 정의 워터마크를 적용할 수 있는 가능성과 오디오 파일의 메타데이터 작업을 가능하게 하는 자체 태그 편집기가 있다는 점도 주목할 수 있습니다.

iFFmpeg는 일괄 데이터 처리를 지원하며 여러 파일을 동시에 작업할 수 있습니다. 이 경우 각 파일에 대한 사전 설정을 선택하고 해당 기술 데이터를 보는 등의 작업이 가능해집니다.

다른 유사한 미디어 변환기와 달리 이 응용 프로그램은 가장 간단한 기능변환 중에 여러 미디어 파일을 하나로 결합할 수 있는 비디오 편집. 이렇게하려면 선택하면 충분합니다. 필요한 파일프로세스를 시작하기 전에 도구 모음에서 해당 옵션을 활성화하는 것을 잊지 마십시오.

변환 후 작업에 포함된 파일 수, 병합 여부에 관계없이 iFFmpeg는 결과 파일을 iTunes 라이브러리에 자동으로 추가할 수 있습니다.

변환 작업이 어떻게 진행되고 있는지 알기 위해 사용자가 반드시 데이터를 보관할 필요는 없습니다. 창문을 열어라프로그램 - 응용 프로그램은 변환이 완료되었음을 알려줍니다. 소리 신호, 사용자는 Dock의 iFFmpeg 아이콘에서 직접 작업 진행률 표시기를 볼 수 있습니다.

응용 프로그램의 다른 장점으로는 작업에 대한 최적화가 있습니다. 멀티 코어 프로세서, 사용자는 코어 수를 독립적으로 결정합니다. 중앙 프로세서 iFFmpeg를 작업에 사용할 수 있습니다.

프로그램 설정 메뉴는 세 개의 탭으로 구성되어 있으며 그 중 하나는 업데이트 옵션 전용이고 다른 두 개는 변환 옵션 및 기본 응용 프로그램 설정을 담당합니다.

iFFmpeg 제작자는 이타적인 동기로 FFmpeg용 셸을 만들지 않았으므로 사용자는 애플리케이션을 구입하는 데 10유로(약 13달러)의 비용을 지불하게 됩니다. 한편으로 이것은 단지 제품에 비해 상당히 많은 것입니다. 그래픽 인터페이스콘솔 응용 프로그램의 경우 iFFmpeg는 다양한 인코딩 설정 작업을 크게 용이하게 하여 사용자가 해당 설정을 기억하고 콘솔에 긴 명령을 작성해야 하는 필요성을 덜어줍니다.

이 프로그램은 개발자 웹사이트에서만 구매할 수 있으며, 8가지 변환 작업을 위해 설계된 무료 데모 버전도 다운로드할 수 있습니다.

FFmpeg는 비디오 및 오디오 파일을 편집하고 변환하는 거의 모든 기본 작업을 수행할 수 있는 라이브러리 및 명령줄 유틸리티 세트입니다. 다음은 비디오 편집 시 유용할 수 있는 FFmpeg 작업을 위한 주요 명령에 대한 치트 시트입니다. 특히 품질 저하 없이 비디오 및 오디오 파일을 비파괴적으로 편집하는 데 주의를 기울입니다. 라이센스: GNU LGPL 및 GNU GPL. 웹사이트: http://ffmpeg.org

초보자를 위한 FFmpeg

스마트폰, 카메라, 기타 디지털 기기를 사용하여 디지털 형식으로 동영상을 촬영하는 것이 일반화되었습니다. 당연히 YouTube에 게시하기 위해 캡처된 비디오를 어떻게든 편집해야 할 필요가 있습니다. 즉, 비디오를 다듬고, 오디오 트랙을 교체하거나 삭제하고, 비디오 형식의 크기를 변경한 다음 모든 것을 단일 비디오 파일로 병합해야 하는 경우가 많습니다.

이 대규모 활동을 위해 많은 프로그램이 만들어지고 있습니다. 이전에 제공된 예를 들어 보겠습니다. 윈도우 시스템 MoveMaker 비디오 편집기. FFmpeg라는 미디어 파일을 편집하고 변환하기 위한 일련의 유틸리티와 라이브러리를 살펴보겠습니다.

FFmpeg의 장점:

    FFmpeg 파일은 공개 라이센스에 따라 사용할 수 있습니다. 즉, 소스 코드는 연구, 수정 및 배포를 위해 자유롭게 공개됩니다. 그리고 프로그램 자체는 공공 도서관의 책처럼 사실상 무료입니다.

    공용 프로그램의 일반적인 경우와 마찬가지로 FFmpeg는 GNU/Linux, Windows, MacOS 등 널리 사용되는 모든 운영 체제에 배포됩니다.

    FFmpeg 프로그램은 콘솔 기반이므로 명령줄에서 직접 멀티미디어 파일을 편집할 수 있습니다. 다양한 종류의 스크립트 및 스크립트(예: 웹 사이트)에서 비디오 및 오디오 파일 처리를 자동화하는 데 FFmpeg 유틸리티가 필수 불가결한 이유는 무엇입니까?

    FFmpeg에는 지원되는 자체 라이브러리가 있습니다. 많은 분량코덱 다양한 형식멀티미디어 파일 - 거의 모든 경우에 사용됩니다. 또한 타사 코덱을 연결하는 기능을 사용하여 FFmpeg를 구축할 수 있습니다.

    따라서 콘솔 유틸리티의 경우 명령줄이 아닌 그래픽 인터페이스와 마우스를 사용하여 작업이 수행되는 MoveMaker와 유사한 소프트웨어 셸을 만들 수도 있습니다. 공개 라이센스 덕분에 FFmpeg 구성 요소는 비디오 트랜스코딩 및 편집을 위한 대부분의 프로그램에서 실제로 찾을 수 있습니다.

    업무용 FFmpeg를 사용하면 품질 저하 없이 많은 동영상을 편집할 수 있습니다. 일반 소비자는 일반적으로 비압축 또는 무손실 비디오를 촬영할 기회가 없습니다. 비디오는 이미 압축되어 있으며 레코딩을 통한 추가 편집으로 인해 비디오 이미지에 더 많은 아티팩트가 추가됩니다. 따라서 압축 없이 비디오 파일을 비파괴적으로 편집할 수 있는 가능성은 누구에게도 해를 끼치지 않습니다.

또한 FFmpeg에는 Libav 포크라는 대안이 있다는 점에 유의해야 합니다. 명령 매개변수 구문은 두 경우 모두 동일합니다.

형식 및 코덱 정보

간단히 말해서 비서정적 여담으로 비디오 및 오디오 파일 형식에 대해 말씀 드리겠습니다. 이 유틸리티 및 라이브러리 세트의 명령이 마법 주문처럼 보이지 않도록 하려면 이를 이해하는 것이 필요합니다.

일반적으로 비디오 파일은 컨테이너입니다. 이건 일종의 아카이브가 생성된 것과 같습니다. 우편 아카이버또는 많은 파일을 포함하는 tar. 기본적으로 이러한 컨테이너에는 비디오 데이터 파일, 하나 이상의 오디오 트랙이 포함됩니다. 텍스트 파일자막, 다른 데이터가 있을 수 있습니다. 일반적으로 컨테이너에 포함된 이러한 파일을 스트림이라고 합니다.

비디오의 일반적인 컨테이너 형식은 3gp, MP4, MOV, MPEG, AVI, MKV(Matryoshka), WEBM 등입니다. FFmpeg는 이러한 다양한 컨테이너 형식과 작동합니다.

오디오 파일 형식(MP3, OGG Vorbis, WAV 등)에는 일반적으로 장르, 작성자, 아티스트 등에 대한 오디오 트랙과 텍스트 메타데이터가 포함되어 있습니다.

컨테이너에 있는 비디오 데이터 자체는 코덱(비디오 인코딩 및 디코딩용 프로그램)에 의해 결정되는 다양한 형식의 형태로 "포장"됩니다. 가장 널리 사용되는 코덱은 MP4 컨테이너용 H.264 및 H.265 코덱이고, WEBM 컨테이너용 V8 및 V9입니다.

FFmpeg는 이국적인 코덱을 포함하여 수많은 코덱과 함께 작동합니다. -codecs 매개변수와 함께 ffmpeg 명령을 실행하여 FFmpeg에서 가능한 코덱 목록을 확인할 수 있습니다.

ffmpeg 코덱

비디오 데이터의 주요 매개변수는 다음과 같습니다.

  • 비디오 이미지 해상도(예: 320x240, p720 등)
  • 비디오 스트림을 생성하는 데 사용되는 형식 및 코덱.
  • 비트 전송률 - 1초에 비디오를 재생하는 데 필요한 데이터 양(킬로바이트 또는 메가바이트)(예: 240Kb/s, 1Mb/s)
  • 프레임 속도 - 초당 프레임 수(초당 프레임) - 예: 24fps, 30fps.

오디오 데이터의 경우 중요한 매개변수이다:

  • 오디오 스트림을 생성하는 데 사용되는 형식 및 코덱.
  • 샘플링 주파수(예: 44KHz)
  • 비트 전송률 - 1초에 오디오 파일을 재생하는 데 필요한 킬로바이트 단위의 데이터 양(예: 96Kb/s, 128Mb/s)
  • 모노 모드, 스테레오 모드 등

그러나 실제로는 더 많은 매개변수가 있습니다. 멀티미디어 파일의 경로와 이름이 전달되는 -i 매개변수와 함께 fmpeg 명령을 사용하면 비디오 컨테이너의 매개변수와 여기에 포함된 비디오 및 오디오 데이터를 쉽게 찾을 수 있습니다.

Ffmpeg -i video.mp4

VidCutter: FFmpeg용 GUI

그러나 명령줄에서만 FFmpeg 사용을 시작할 수는 없습니다. FFmpeg용 그래픽 셸(그래픽 인터페이스와 마우스를 사용하여 기본 명령과 작업을 수행할 수 있는 프로그램)도 있습니다.

이러한 매우 간단한 그래픽 셸의 예는 매우 간단한 VidCutter 프로그램입니다. 이를 통해 그래픽 인터페이스를 사용하여 녹화 없이, 즉 품질 저하 없이 비디오 파일을 다듬을 수 있습니다.

이 프로그램 작업은 하나의 작업으로 구성됩니다. 즉, 조각의 시작과 끝을 선택하고 비디오 다듬기 버튼을 누르는 것입니다. 그러나 대부분의 경우 단순히 비디오 파일을 다듬는 것 이상의 작업이 있습니다.

FFmpeg 유틸리티 키트 설치

리눅스. FFmpeg 유틸리티는 일반적으로 모든 Linux 배포 저장소에 포함되어 있으며 이러한 배포판의 기본 패키지 관리자가 쉽게 설치할 수 있습니다. 공식 웹사이트에서 미리 만들어진 ffmpeg 바이너리 어셈블리를 다운로드하여 홈 폴더에서 직접 실행할 수도 있습니다. 아니면 소스에서 컴파일하세요.

을 위한 윈도우그리고 맥 OS공식 웹사이트에서 미리 만들어진 FFmpeg 바이너리 어셈블리가 포함된 아카이브를 다운로드하여 임의의 디렉터리에 압축을 풀 수 있습니다. 필요한 유틸리티는 일반적으로 bin 폴더에 있습니다. 명령줄에서 직접 이러한 유틸리티에 대한 경로를 지정하거나 전역 시스템 변수를 통해 유틸리티에 대한 경로를 추가하여 명령줄에서 실행해야 합니다.

FFmpeg 세트에는 두 가지 주요 유틸리티가 있습니다.

  • ffmpeg - 멀티미디어 파일을 사용하는 모든 작업을 위한 유틸리티입니다.
  • ffplay는 다른 플레이어 대신 사용할 수 있는 매우 간단한 미디어 플레이어입니다.

FFmpeg로 편집하기

오래된 Canon, Nikon 또는 캠코더로 만든 소중한 비디오 파일이 여러 개 있다고 가정해 보겠습니다. 우리는 이 비디오에서 불필요한 부분을 다듬고, 배경 사운드를 제거하고, 음악을 추가하고 싶었습니다. 그런 다음 녹음이나 품질 저하 없이 모든 것을 단일 파일로 병합합니다.

이 파일들을 별도의 폴더에 넣고 명령줄에서 이 폴더로 이동하여 ffmpeg 명령을 사용하여 비디오 파일을 편집해 보겠습니다.

또한 ffmpeg 유틸리티 명령줄 매개변수의 올바른 순서와 그룹화를 유지해야 합니다.

  • 조작 및 편집을 위한 입력 파일은 -i 옵션 뒤의 ffmpeg 명령 바로 뒤에 지정된다는 점을 잊지 마십시오: ffmpeg -i video.mp4 ;
  • 입력 매개변수 뒤에 또는 입력 파일예를 들어 스트림 선택 옵션, 새 비디오 해상도 옵션과 같은 전역 매개 변수가 있습니다.
  • 그 다음에는 비디오 코덱 옵션이 있고 그 뒤에는 비디오 필터를 포함한 해당 매개변수가 있습니다.
  • 그런 다음 오디오 코덱 옵션이 있으며 필터를 포함하여 해당 매개변수가 나열됩니다.
  • 명령 출력 파일 이름을 완성합니다.

예제 명령줄

FFmpeg: 트랜스코딩 및 파괴적인 편집

비디오 스티칭과 같은 많은 비디오 파일 편집 작업의 경우 이러한 파일을 단일 형식으로 변환해야 합니다.

FFmpeg의 주요 목적은 미디어 파일을 한 형식에서 다른 형식으로 변환하는 것입니다. FFmpeg로의 트랜스코딩도 매우 쉽게 수행할 수 있습니다.

최소한 다른 형식으로 변환하려면 출력 파일에 원하는 파일 확장자를 설정해야 합니다. 그게 다야. 이 확장을 사용하면 유틸리티는 필수 코덱을 선택하고 입력 파일의 매개변수를 기반으로 이 코덱의 기본 매개변수에 따라 입력 파일을 트랜스코딩합니다. 예를 들어 다음 명령은 MP4 video.mp4 입력 파일을 WEBM 컨테이너 파일 video.webm으로 트랜스코딩합니다.

Fmpeg -i video.mp4 video.webm

그러나 기본 설정은 일반적으로 기본 설정이므로 원하는 품질이나 추가 편집 기능을 제공하지 못할 수 있습니다. 따라서 형식 매개변수를 명시적으로 설정할 수 있습니다. 비디오 매개변수 블록과 오디오 블록에 대한 주요 옵션을 나열해 보겠습니다.

비디오 매개변수에 대한 ffmpeg 옵션:

  • -vcodec 또는 간단히 c:v - 비디오 코덱 매개변수, "복사" 또는 빈 매개변수(기본값)
  • -f - 컨테이너 형식
  • -b - 초당 킬로비트 또는 메가비트 단위의 비트 전송률은 문자 K 또는 M으로 지정됩니다.
  • -aspect - 이미지의 화면 비율(4:3, 16:9, 1.3333, 1.7777)
  • -r - 프레임 속도

사운드 옵션에 대한 ffmpeg 옵션:

  • -acodec 또는 간단히 c:a - 오디오 코덱 매개변수, "복사" 또는 빈 매개변수(기본값)
  • -f - 오디오 형식
  • -ab - 오디오 비트 전송률
  • -ar - 불신 빈도
  • -ac - 채널 수

예를 들어, 명시적으로 지정된 매개변수를 사용하여 MP4 video.mp4 입력 파일을 WEBM video.webm 컨테이너 파일로 코딩해 보겠습니다.

이 명령의 결과로 선택한 코덱을 사용하여 비디오 및 오디오 스트림을 트랜스코딩하는 프로세스가 새 매개변수에 따라 시작됩니다. 멀티미디어 파일의 매개변수와 컴퓨터 성능에 따라 이 트랜스코딩 프로세스는 꽤 오랜 시간이 걸릴 수 있습니다.

FFmpeg: 비디오 해상도 변경

재인코딩은 자연스럽게 수행되며 전역 옵션 -s를 사용하여 비디오의 새 해상도를 설정하면 됩니다.

Ffmpeg -i video.mp4 -s 320x240 video.webm

FFmpeg: 품질 손실 없는 트랜스코딩 및 비파괴 비디오 편집

이제 품질 저하 없이 비디오를 한 형식에서 다른 형식으로 변환하는 방법에 대해 알아보겠습니다. 일부 작업의 경우 컨테이너 파일 내부의 스트림이 그대로 유지되고 한 파일에서 다른 파일로 있는 그대로 복사되면 오디오 및 비디오를 녹음하지 않고 품질 손실 없이 편집이 가능합니다. 이를 위해 -vcodec 및 -acodec 옵션은 복사 옵션을 사용합니다. 예를 들어 MP4 video.mp4 파일의 비디오 스트림과 오디오 스트림을 TS video.ts 컨테이너 파일에 "부어"보겠습니다.

결과적으로 새 video.ts 컨테이너 파일에는 트랜스코딩의 영향을 받지 않은 video.ts 컨테이너 파일의 비디오 및 오디오가 포함됩니다.

FFmpeg: 비디오 파일의 비파괴적 슬라이싱 및 트리밍

비디오 파일은 -ss 및 -t 옵션을 사용하여 잘립니다. -ss 옵션은 트리밍 시작을 지정하고 -t 옵션은 추가 조각의 기간을 지정합니다. 시간은 "시:분:초" 형식으로 지정됩니다. 비디오 파일의 내용을 비파괴적으로 편집하려면 복사 옵션을 사용하십시오.

녹음하지 않고 다듬는 작업은 매우 빠르며 컴퓨터 전력을 많이 차지하지 않습니다.

FFmpeg: 비디오 파일 접착 및 결합

ffmpeg를 사용하여 비디오 파일을 붙이고 연결하려면 이 형식의 비디오 및 오디오 스트림 매개 변수 측면을 포함하여 동일한 형식이어야 합니다. 그렇지 않은 경우 먼저 비디오 파일을 단일 형식으로 트랜스코딩해야 합니다.

많은 형식의 경우 ffmpeg에서 파일 연결은 concat 연산자를 사용하여 수행됩니다. 이 연산자는 콜론이 전달된 후 파이프 문자로 구분된 일련의 입력 파일을 전달합니다. 동일한 형식과 유형의 file1.avi 및 file2.avi 파일을 코딩하지 않고 붙이는 예:

Ffmpeg -i "concat:file1.avi|file2.avi" -vcodec 복사 -acodec 복사 출력.avi

비디오 조각을 단일 파일로 결합할 때 조각의 비디오 스트림과 오디오 스트림이 별도로 추가된 다음 하나의 컨테이너로 결합된다는 점을 고려해야 합니다. 따라서 조각 중 하나에서 오디오 트랙의 시간이 비디오 스트림보다 짧은 경우 나머지 조각의 오디오 트랙이 이 짧은 오디오 트랙의 끝으로 이동하고 사운드 비동기화가 발생합니다. 이 점을 고려해야 합니다.

FFmpeg: MP4 비디오 파일 접합 및 결합

MP4 컨테이너의 비디오 파일은 concat 연산자를 사용하여 연결할 수 없습니다. 하지만 먼저 비디오 및 오디오를 트랜스코딩하지 않고 이러한 파일을 MPEG-TS와 같은 컨테이너로 변환할 수 있습니다.

Ffmpeg -i vid1.mp4 -acodec 복사 -vcodec 복사 -vbsf h264_mp4toannexb -f mpegts vid1.ts ffmpeg -i vid2.mp4 -acodec 복사 -vcodec 복사 -vbsf h264_mp4toannexb -f mpegts vid2.ts

그런 다음 concat 연산자를 사용하여 이러한 파일을 최종 mp4 파일로 결합할 수 있습니다.

Ffmpeg -i "concat:vid1.ts|vid2.ts" -vcodec 복사 -acodec 복사 out.mp4

FFmpeg: 오디오 트랙 제거

나중에 다른 파일로 교체하기 위해 비디오 파일에서 오디오 스트림을 제거해야 하는 경우가 많습니다. 이는 -an(오디오 없음) 옵션을 사용하여 수행됩니다.

Ffmpeg -i zvuk.mpg -vcodec 복사 -an bezzvuka.mpg

FFmpeg: 오디오 트랙 추가 또는 교체

다음을 사용하여 비디오 파일에 오디오 스트림을 추가해야 합니다. 추가 옵션-i는 사운드 파일의 경로를 매개변수로 전달합니다.

FFmpeg: 비디오 파일의 스트림에 액세스하기 위한 "-map" 옵션

위에서는 여러 입력 미디어 파일이 처리, 연결, 다중화될 때 ffmpeg에 -i 옵션을 반복적으로 사용하는 예를 보았습니다. 또한 컨테이너 파일에는 비디오, 사운드 및 데이터의 여러 멀티미디어 스트림이 포함될 수 있다고 위에서 언급했습니다. FFmpeg에는 처리, 복사 또는 붙여넣기 위해 컨테이너의 특정 입력 미디어 스트림 또는 내부 스트림을 지정하는 데 사용할 수 있는 특수 옵션 -map 이 있습니다.

스트림은 "0:0", "0:1", "1:0", "2:1" 등 콜론으로 구분된 이중 숫자로 지정됩니다. 콜론 앞의 첫 번째 숫자는 -i 옵션으로 지정된 각 입력 파일의 일련 번호이며 0부터 시작합니다. 그리고 콜론 뒤의 숫자는 파일 내부의 스레드 번호를 나타냅니다.

구체적인 예를 사용하여 -map 옵션을 살펴보겠습니다.

비디오 파일에서 별도의 오디오 트랙 저장(디멀티플렉싱)

각 비디오 파일의 스트림 번호는 대략 다음과 같은 형식을 갖는 ffmpeg -i 명령의 출력을 통해 확인할 수 있습니다.

Ffmpeg -i video.mkv ... 스트림 #0:0(und): 비디오 ... 스트림 #0:1(ger): 오디오 ... 스트림 #0:2(eng): 오디오 ... 스트림 # 0:3(rus): 자막…

즉, 콜론 앞의 0은 이것이 ffmpeg의 첫 번째 입력 파일임을 의미합니다. 위의 예에서는 video.mkv 파일입니다. 그리고 콜론 뒤의 숫자는 이 파일의 내부 스트림 수를 의미합니다. 특정 스트림을 처리하려면 -map 옵션에 해당 스트림의 특정 번호를 전달해야 합니다. 역다중화, 즉 컨테이너의 오디오 트랙 중 하나를 별도의 파일에 저장하는 -map 옵션이 포함된 명령의 예:

Ffmpeg -i video.mkv -map 0:2 sound.wav

FFmpeg: 비디오 파일에 여러 오디오 트랙 추가(멀티플렉싱)

이제 FFmpeg를 사용하여 비디오 파일에 여러 오디오 트랙을 추가하는 예를 살펴보겠습니다. 이를 위해 -map 옵션을 다시 사용합니다.

빈 비디오 파일 video.avi가 있고 이에 대해 여러 오디오 트랙 zvuk1.mp3 및 zvuk2.mp3을 선택했다고 가정해 보겠습니다. 예를 들어 다양한 음악이나 다양한 언어의 댓글이 있습니다. 이제 멀티플렉싱, 즉 이러한 파일을 단일 컨테이너 파일로 결합하기 위해 "-map" 옵션을 사용합니다.

Ffmpeg -i video.avi -i zvuk1.mp3 -i zvuk2.mp3 -map 0:0 -map 1:0 -map 2:0 out.avi

보시다시피, -i 옵션 뒤의 입력 파일에 대해 -map 옵션은 콜론 앞의 숫자를 사용합니다. 그리고 내부에 두 개의 오디오 트랙이 포함된 출력 비디오 파일을 받았습니다. 이는 많은 플레이어에서 전환할 수 있습니다. 예를 들어 mpv 플레이어에서 오디오 트랙 간 전환은 "#"(Shift+2)을 통해 수행됩니다.

당연히 새 비디오 파일에 대한 인코딩 매개변수를 추가하는 것이 가능했습니다. 예를 들어, -c:v copy -c:a copy 옵션을 사용하면 위 예에서 입력 파일 video.avi, zvuk1.mp3 및 zvuk2.mp3를 레코딩하지 않고 순수 복사하여 새 out.avi 파일을 생성할 수 있습니다. .

따라서 FFmpeg를 사용하면 비디오 파일에 자막을 추가할 수 있습니다. 가장 중요한 것은 컨테이너 내부의 입력 스트림과 스레드 수를 혼동하지 않는 것입니다.

항상 손에

위 기사에서는 초보자를 위한 기본 FFmpeg 명령을 치트 시트 스타일로 설명합니다. 기사의 범위를 넘어서 ffmpeg 명령줄의 구문적 특징이 많이 있었으며, 기능성이 프로그램. 예를 들어 FFmpeg 필터에 대한 이야기는 없습니다. FFmpeg를 보다 성공적으로 사용하려면 프로그램의 전체 문서와 문서에 대해 더 잘 알고 있어야 합니다. 필수 형식멀티미디어.

이 기사는 향후 FFmpeg 사용에 대한 새로운 예제로 보완될 수 있습니다. 그러나 모든 사람은 항상 영어로 된 매뉴얼과 참고서를 가지고 있습니다.

Ffmpeg -h 전체 > ffmpeg_help.txt

좋다

좋다

트위터

FFmpeg의 역사

2000년에 Gerard Lantau라는 별명을 가진 프로그래머가 FFmpeg 프로젝트의 소스 코드를 공개적으로 공개했습니다. 수년 동안 개념은 동일하게 유지되었습니다.

  • 프로그램으로 구분 FFmpeg비디오 인코딩 및 FF서버스트리밍 방송을 구성하기 위한 것입니다.
  • 최고 빠른오디오 및 비디오 인코딩.

당시 컴퓨터의 500MHz가 표준으로 간주되어 최대 최적화가 필요했기 때문에 FFmpeg에는 속도에 최적화된 자체 비디오 코덱 구현이 있습니다. 이는 특히 프로세서가 과열되지 않도록 전력 소비를 줄이기 위해 끊임없이 노력하는 비디오 호스팅 서버에서 여전히 필요합니다.

FFmpeg는 확고하게 자리 잡고 있습니다. 거의 매일 소스 코드가 변경됩니다. 새로운 구성 요소가 추가되고 있습니다. 예를 들어 FFplay 플레이어 및 FFprobe 정보 유틸리티가 있습니다.

FFmpeg 및 FFserver 다운로드 위치

FFmpeg는 Linux용으로 개발되었습니다. 사이트에서 비디오 방송이 나오는 창이 보이면 FFmpeg와 FFserver 덕분에 작동할 확률이 10점 만점에 9점입니다.

Windows용 FFmpeg(및 FFserver) 버전도 존재합니다.하지만 일부 기능은 사용할 수 없습니다. 그러나 이로 인해 MediaCoder 비디오 변환기(www.mediacoderhq.com) 및 플레이어가 작동하는 데 방해가 되지는 않습니다.

32비트 및 64비트 버전 중에서 선택할 수 있습니다. 비디오를 인코딩하려면 64비트 정적 버전(' 같은 링크)을 선택하세요. FFmpeg git-*** 64비트 정적 다운로드«).

예를 들어 IP 비디오 카메라에서 방송되는 비디오를 구성해야 하는 경우 32비트 버전의 FFmpeg가 바람직합니다. 64비트 버전에서 문제가 발견되었습니다. 프로그램이 저절로 종료되었습니다. 아마도 Windows용 FFserver가 32비트이기 때문에 호환성이 떨어지는 경우가 있습니다.

Windows의 FF서버또한 존재하지만 그것에 대해 아는 사람은 거의 없습니다. 이 프로그램은 Linux 전용 코드를 많이 사용하기 때문에 컴파일하기가 어렵습니다. Xeoma 비디오 감시 시스템 개발자는 자신의 웹사이트에 Windows용 FFserver를 게시했기 때문에 훌륭한 것으로 나타났습니다. http://felenasoft.com/xeoma/ru/ffserver/다운로드하는 것을 잊지 마세요 cygwin1.dll거기에서.

인터넷에는 FFserver에 대한 많은 지침이 있습니다. Linux 버전을 예로 들어 작성되었지만 Windows에서는 완벽하게 작동합니다. 유일한 차이점은 ffserver.conf 파일이 /etc 폴더에 위치하지 않고 ffserver.exe, cygwin1.dll 및 ffmpeg.exe와 동일한 폴더에 위치해야 한다는 것입니다.

FFmpeg를 설치하는 방법

2. 디스크에 생성 씨:폴더 ffmpeg거기에 아카이브의 압축을 풉니 다.

이것은 ffmpeg를 설치하기에 충분합니다. 앞으로는 편의를 위해 4단계를 따르는 것이 좋습니다.

3. 방송을 설정해야 하는 경우 해당 폴더로 이동하세요. c:\ffmpeg\bin짐 등에서 꺼내다 ff서버그리고 파일을 넣어주세요 cygwin1.dll.

4. 매번 명령으로 프로그램의 전체 경로를 작성하지 않으려면 이를 PATH 변수에 추가할 수 있습니다. 제어판 - 시스템 - 추가 옵션시스템 -추가적으로 - 환경 변수 - 변수 라인의 끝에서 추가하다 " ;c:\ffmpeg\bin" 인용없이. 비어 있는 경우(완전히 정상은 아님), “ c:\ffmpeg\bin", 즉. 처음에는 세미콜론이 없습니다.

그런 다음 변경 사항을 적용하려면 컴퓨터를 다시 시작하십시오.

네 번째 단계를 건너뛸 수 있지만 ffmpeg 및 ffserver 명령 대신 전체 경로 “c:\ffmpeg\bin\ffmpeg.exe” 및 “c:\ffmpeg\bin\ffserver.exe”를 작성해야 합니다.

FFmpeg를 사용하는 방법

~에 홈페이지 FFmpeg에는 다음과 같은 문구가 있습니다.

명령줄에 익숙하지 않은 사람은 당황할 것입니다. 명령을 어디에 입력하나요?

귀찮게 하고 싶지 않다면 현미경처럼 무료 또는 유료 FFmpeg를 사용하세요. 손톱을 망치는 것이 아니라 섬세한 작업에 필요합니다.

폴더 내 ffmpeg\doc구성 요소 사용에 대한 많은 예제가 수집되어 있으며 모든 명령을 여기에서 볼 수 있습니다.

자신만의 파일 이름을 가지게 됩니다. 공백이 있거나 러시아어인 경우 이름을 따옴표로 묶습니다.

파일 정보 표시:

ffmpeg -i video.mp4

또는 ffprobe 비디오.mp4

집게 비디오 avi mp4로:

ffmpeg -i video.avi video.mp4

mov를 flv로 변환하고 해상도를 변경합니다.

ffmpeg -i video.mov -s 640x360 -b 1700k -vcodec flv -ar 44100 video.flv

비디오를 중간 품질의 webm, OGG 형식의 오디오로 압축합니다:

ffmpeg -i video.mp4 -c:v libvpx -crf 10 -b:v 1M -c:a libvorbis video.webm

MPEG4 코덱, 사운드 - mp3, 컨테이너 - avi로 비디오 압축:

ffmpeg -i video.mp4 -vcodec mpeg4 -mbd rd -flags +mv4+aic -trellis 2 -cmp 2 -subcmp 2 -g 100 -qscale 3 -acodec libmp3lame -ac 2 -ab 128k -y video.avi ffmpeg -i video.mp4 -vn -ar 44100 -ac 2 -ab 192 -f mp3 zvyk.mp3

비디오에 오디오 트랙을 추가합니다("-acodec libmp3lame"은 생략할 수 있으며, 그러면 ffmpeg가 오디오 인코딩 방법을 결정합니다):

ffmpeg -i zvyk.mp3 -i video.mp4 -acodec libmp3lame video_final.mp4

비디오를 다시 인코딩하지 않고 오디오 트랙을 추가합니다(품질 유지, 빠르게 작동):

ffmpeg -i zvyk.mp3 -i video.mp4 -acodec libmp3lame -vcodec video_final.mp4 복사 ffmpeg -ss 00:00:02 -i video.mp4 -f image2 -vframes 1 Thumb.jpg ffmpeg -i video.mp4 -vf deshake out.mp4

구조

예제에서 볼 수 있듯이 ffmpeg 명령의 구조는 다음과 같습니다.

ffmpeg -옵션 -more_options -possible_options_with_parameters_예 1-i "파일 이름.확장자" -encoding_options -추가 옵션 +codec_options "resulting_file_name.extension"

인코딩 옵션을 지정하지 않으면 ffmpeg는 최대 품질을 유지하기 위해 결과 파일에 대해 소스 파일의 매개변수를 사용하려고 시도합니다.

정보용(설치된 버전의 기능을 확인하기 위해)

-엘
라이센스 텍스트를 표시합니다.

-h, -?, -help, -help
사용 가능한 명령 목록입니다.

-버전
ffmpeg 버전을 알아보세요.

-형식
사용 가능한 컨테이너 형식 목록을 표시합니다(코덱 아님!).

Windows에서는 명령줄에 전체 목록을 표시할 줄이 충분하지 않습니다. 이를 수정하려면 창 속성을 열고 "레이아웃" 탭에서 화면 버퍼 높이를 500으로 설정하세요. 목록에서 문자 D와 E 디코딩 및 인코딩 지원을 의미합니다.

-코덱
사용 가능한 코덱 목록입니다. 직관적인 D 및 E("읽기"를 위한 디코더 및 인코딩을 위한 인코더) 외에도 다음 기호가 표시됩니다.
V - 비디오용 코덱, A - 오디오 트랙용, S - 자막, I - I 프레임 인코딩 전용, L - 데이터 손실이 있는 코덱(대부분), S - 데이터 손실 없음(품질 유지, 약하게 압축).

-bsfs
데이터 스트림의 올바른 처리를 위해 일부 경우에 필요한 지원되는 비트스트림 필터(데이터 스트림 필터)를 표시합니다.
-프로토콜
사용 가능한 프로토콜을 표시합니다. 표시된 목록에서 파일뿐만 아니라 RTMP 스트림(비디오 방송) 등을 입력 데이터로 사용할 수 있음이 분명합니다. 주말도 마찬가지죠.
-필터
사용 가능한 비디오 및 오디오 필터. FFmpeg에서는 거대한수량. FFmpeg에는 일반적인 회전 및 밝기 설정 외에도 스테레오 확장, 프랙탈 생성 등이 있습니다. 자세한 지침- V doc/ffmpeg-filters.html.

-pix_fmts
사용 가능한 색상 형식. FFmpeg는 엄청난 숫자를 이해합니다. 색상 공간. 장비가 이상한 색상을 생성하는 사람들에게 유용합니다.

기본 옵션

-로그레벨 의미 또는 -V 의미

로깅 수준. 최소 - 조용한 것부터 가장 상세한 디버그까지. 전체 목록: 조용함, 패닉, 치명적, 오류, 경고, 정보, 장황함, 디버그. 비디오 인코딩 중에 오류가 발생하여 자세한 내용을 확인해야 하는 경우 유용합니다.

-에프 의미 (mp4, avi, mkv, gif 등)

특정 파일 형식(컨테이너)을 지정합니다. 일반적으로 FFmpeg는 출력 파일 확장자로 선택하지만 다시 할당할 수 있습니다.

-나 path_to_file

수신 파일 또는 스트림을 지정하는 명령입니다(예: 스트리밍 비디오 캡처를 위한 rtmp://address).

-와이
메시지를 표시하지 않고 기존 출력 파일을 덮어씁니다.

-ss 시간

나타내다 어떤에서비디오/오디오를 인코딩해야 하는 시간. 형식은 "hh:mm:ss"입니다. 자세한 내용: https://trac.ffmpeg.org/wiki/Seeking

-티 시간

표시하여주십시오 몇시까지비디오/오디오를 인코딩해야 하는 시간. 이전 명령과 함께 영상의 한 부분을 잘라낼 때 사용하면 편리합니다.

-FS 크기
출력 파일 제한. 예를 들어, -fs 10M출력 파일 크기가 10MB가 되는 즉시 인코딩이 중지됩니다. K, M, G(킬로바이트, 메가바이트, 기가바이트)가 지원됩니다.

비디오 인코딩 옵션

-비 의미
설치 비트 전송률동영상. 더 높은 비트레이트 - 더 나은 품질그리고 더 큰 크기파일. 값이 킬로비트/초인지 메가비트/초인지 프로그램이 이해할 수 있도록 끝에 숫자 K 또는 M을 표시합니다.

-vframes 의미

인코딩할 프레임 수입니다.

-아르 자형 의미
프레임 속도를 지정합니다.

-에스 크기

비디오를 인코딩할 해상도를 지정합니다. 예를 들어 FullHD 비디오 출력의 경우 1920×1080입니다. FFmpeg는 문자 약어(vga, hd480, hd720, hd1080 등)를 이해합니다.

-측면 종횡비

비디오 화면 비율(4:3, 16:9 또는 1.3333, 1.7777 등)을 지정합니다. 전문가들이 알고 있듯이 비디오의 픽셀은 직사각형일 수 있습니다.

-작물 가기 의미,-자르기 바닥 의미, -croleft 의미, -작물권의미

상단, 하단, 왼쪽 또는 오른쪽에서 비디오 픽셀 수를 자릅니다.

-패드탑 의미, -패드바닥 의미, -패드왼쪽 의미, -패드라이트 의미

상단, 하단, 왼쪽 또는 오른쪽에 비디오 테두리를 추가합니다.

-padcolor hex_color

16진수 형식의 테두리 색상입니다(#000000 - 검정색, #FF0000 - 빨간색 등).

-vn
비디오를 인코딩하지 마십시오.

-bt 의미

값은 지정된 비트 전송률과의 최대 편차를 지정합니다. 코덱에 따라 작동하지 않을 수 있습니다.

-최대 속도 비트 전송률

최대 비트 전송률 값을 지정합니다. -bufsize를 통해 버퍼 크기를 지정해야 합니다.

-최소 비율 비트 전송률

최소 비디오 비트 전송률. 특정 비트 전송률을 강제하는 데 종종 사용됩니다.

ffmpeg -i video.avi -b 4000K -minrate 4000K -maxrate 4000K -bufsize 1835k video-out.mp4

-bufsize 크기

비디오 버퍼 크기를 설정합니다. 간단히 말해서 FFmpeg가 한계 내에서 어떤 비트 전송률을 선택할지 분석하고 선택하는 비디오입니다. 우선, 스트리밍에 필요합니다. 버퍼가 클수록 인코딩 중 안정성이 높아집니다.

-vcodec 코덱

코덱 선택(명령 참조 -코덱코덱 목록을 보려면) 지정할 수 있습니다 복사이면 FFmpeg는 다시 인코딩하지 않고 비디오 스트림을 복사합니다.

원본 영상/사운드의 품질을 유지하세요. 와 같지 않아요 -vcodec 복사. 비디오 품질은 유지되고 코덱은 무엇이든 가능하며 비디오 트랙이 다시 인코딩됩니다.

-통과하다 N

다중 패스 비디오 인코딩의 경우. 어떤 패스를 만들 것인지 나타냅니다(1 또는 2). 통계가 포함된 파일 이름 접두사는 다음 명령으로 지정됩니다. -패스로그 파일 의미.

시간과 리소스를 절약하기 위해 첫 번째 단계에서 오디오 처리를 비활성화할 수 있습니다.
ffmpeg -i video.mp4 -vcodec libxvid -pass 1 -an -f rawvideo -y NUL

사운드 옵션

-aframes 수량

인코딩해야 하는 오디오 프레임 수(예, 오디오에는 프레임이 있습니다!)

-ar 빈도

오디오 주파수를 지정합니다(기본값 44100Hz).

-ab 비트 전송률

비트 전송률(기본값 = 64K)

-aq 의미

품질 표시(가변 비트 전송률과 함께 사용되는 코덱에 따라 다름)

-ac 숫자

오디오 채널 수(기본값 1)

오디오를 인코딩하지 마세요.

-아코덱 코덱

오디오 코덱을 지정합니다. 의미 복사다시 인코딩하지 않고도 오디오 트랙을 복사할 수 있습니다.

-뉴오디오

다른 오디오 트랙을 추가합니다. 해당 매개변수는 -newaudio 명령 앞에 지정됩니다.

ffmpeg -i 파일.mpg -vcodec 복사 -acodec ac3 -ab 384k test.mpg -acodec mp2 -ab 192k -newaudio

자막

-scodec 코덱

자막용 코덱( 복사- 직접 복사의 경우).

-새로운 자막

더 많은 자막을 추가합니다.

-속어 암호

ISO 639 표준(3글자)으로 자막 언어를 지정합니다.

자막을 비활성화합니다.

기타 명령

-스레드 수량

비디오 인코딩을 위한 스레드 수입니다. 이 옵션은 멀티 코어 PC에서만 사용해야 하며 선택한 코덱에 대한 설명서를 주의해서 읽어야 합니다.

-vsync 의미

프레임 동기화. 값:

0 - 각 프레임은 해당 프레임에 포함된 타임스탬프를 사용하여 입력에서 결과 파일로 전송됩니다.

1 - 필요한 프레임 속도를 유지하기 위해 프레임이 복제되거나 삭제됩니다.

2 - 필요한 프레임 속도를 유지하기 위해 프레임을 건너뛰거나 삭제합니다.

1이 기본값입니다. FFmpeg는 방법 1과 2 중에서 선택합니다.

명령 사용 -지도무엇을 무엇으로 조정할지 지정할 수 있습니다. 세부정보: https://trac.ffmpeg.org/wiki/Map

-비동기 초당 프레임

오디오 동기화 방법을 선택합니다. 오디오와 비디오를 동시에 유지하기 위해 오디오 트랙을 늘리거나 압축할 수 있습니다. 값이 1이면 "다음에 무슨 일이 일어나든" 원칙에 따라 맨 처음에만 오디오 트랙이 조정됩니다.

모든 타임스탬프를 강제로 복사하는 데 사용됩니다. 소스 파일. 비디오의 시작 부분이 00:00이 아닌 다른 부분이고 이를 저장해야 하는 경우에 유용합니다.

-가장 짧은

가장 짧은 입력 파일이 끝나면 인코딩을 중지합니다.

더 많은 팀이 있나요?

여기에서 FFmpeg 명령을 확인하세요.

http://help.ubuntu.ru/wiki/ffmpeg(러시아어).

https://ffmpeg.org/ffmpeg.html(공식 문서).

현재 대중화되고 있는 x264 코덱을 사용한 인코딩에 대해서는 다음을 살펴보세요.

http://wiki.rosalab.ru/ru/index.php/FFmpeg(러시아어로는 예가 있습니다).

왜 이렇게 팀이 많아?

비디오 및 오디오 파일 처리를 완벽하게 제어하려면 필요합니다.

대부분의 사용자는 압축 코덱뿐만 아니라 해당 매개변수도 중요하다는 사실을 인식하지 못한 채 비디오를 변환합니다. 초보 사용자가 이해하기 쉽지 않은 뉘앙스가 있습니다. 예를 들어, 확장자가 "mp4"인 파일에는 MPEG4 코덱이 포함된 비디오가 반드시 포함될 필요는 없습니다.

FFmpeg에 대해 궁금한 점이 있으면 댓글로 질문하세요. 제가 할 수 있는 한 최선을 다해 도와드리겠습니다.

관련 게시물:

좋다

좋다

갑자기 드라이브 용량이 사진과 비디오로 가득 차고 새로운 여행이 시작됩니다. 해야 할 일, 새 것을 구입하거나 클라우드에서 디스크 공간을 임대하거나 다음을 통해 비디오 파일을 압축하는 것이 더 나을 수 있습니까? ffmpeg?


그러나 왜 저축에만 국한합니까? 디스크 공간? 저는 명령줄 유틸리티를 사용하여 사진, 오디오 및 비디오 데이터를 처리하는 놀라운 가능성을 배울 것을 제안합니다.

ffmpeg 라이브러리 및 비디오 처리

오픈된 도서관 소스 코드 ffmpeg아마도 이미 귀하의 컴퓨터에 설치되어 있을 것입니다. 운영 체제. 그렇지 않은 경우 설치하십시오. 정규 프로그램패키지 관리에는 시간이 많이 걸리지 않습니다.

하나의 오디오 및 비디오 파일 형식을 다른 형식으로 변환

ffmpeg -i 파일. 파일.

카메라에 녹화된 비디오를 줄입니다.


ffmpeg -i MVI_4703.MOV MVI_4703.avi

똑같지만 품질 관리가 필요합니다.


ffmpeg -i MVI_4703.MOV -q:v 4 MVI_4703.avi

동영상 크기가 다음보다 줄었습니다. 5 회눈에 띄는 품질 저하 없이 말이죠. 옵션 -qscale:v n, 축약형 -q:v n을 사용하면 생성된 비디오 스트림의 품질 수준을 설정할 수 있습니다. 여기서 n은 1에서 31 사이의 값을 갖습니다. 값 1은 더 나은 품질, 31이 최악입니다.


-rw-r--r-- 마이그레이션 사용자 1명 124M 7월 18일 23:29 foto/MVI_4703.avi -rw-r--r-- 마이그레이션 사용자 1명 686M 6월 27일 21:38 foto/MVI_4703.MOV

코덱 지정

필요한 코덱을 선택하기 위해 -c:a 스위치를 사용합니다. -이력서 .


ffmpeg -i video.mp4 -c:v vp9 -c:a libvorbis video.mkv

ffmpeg -codecs 명령을 사용하면 지원되는 모든 코덱을 볼 수 있습니다.

파일 컨테이너 변경

이제 그러한 사용 사례를 살펴보겠습니다. TV에 내장된 플레이어는 다음을 지원합니다. mkv 형식, m4v는 지원하지 않습니다. 컨테이너를 변경하려면 다음 명령을 사용합니다.


ffmpeg -i video.m4v -c:av video.mkv 복사

사운드만 변경하고 비디오는 그대로 두려면 이 명령을 실행하세요. 어떤 이유로 Philips TV는 AAC/AC3 오디오 형식만 인식합니다.


ffmpeg -i video.m4v -c:v 복사 -c:a aac video.mkv

오디오 트랙 추가

간단히 입력 파일을 나열하고 출력을 지정합니다.


ffmpeg -i video.mp4 -i audio.ogg video_sound.mp4

오디오 트랙 추출

소리만 추출해야 한다면 이렇게 할 수 있습니다.


ffmpeg -i 비디오.MOV -vn 오디오.ogg

추출된 오디오 트랙의 형식을 설정합니다.


ffmpeg -i 비디오.MOV -vn -c:a flac 오디오.flac

허용되는 비트 전송률을 나타내며 기본적으로 128k가 기록됩니다.


ffmpeg -i 비디오.MOV -vn -c:a flac -b:a 192k 오디오.flac

사진으로 슬라이드쇼 만들기

종이에 매끄러웠을 때도 마찬가지다. 실제로는 사진의 다양한 형식, 코덱, 크기 및 방향을 헤쳐 나가면서 갈퀴를 거쳐야 합니다.


ffmpeg -r .3 -pix_fmt rgba -s 1280x720 -pattern_type glob -i "*.JPGЕ video.mkv

약간의 설명이 필요합니다.

  • -아르 자형 숫자- 초당 프레임 속도.
  • -pix_fmt - 픽셀 형식, ffmpeg -pix_fmts 명령의 목록입니다. 모든 형식에서 필요한 프레임 크기를 설정할 수 있는 것은 아닙니다.
  • -pattern_type glob - 다음과 같이 패턴 일치를 사용합니다. 명령 셸. 대안은 모든 image0001.png, image0002.png 등에 대해 image%03d.png와 같은 C printf 형식을 사용하는 것입니다.

비디오 스트림 변경

전체 비디오 파일이 필요하지 않고 일부만 필요하다고 가정해 보겠습니다. 이 명령영상의 처음 1분부터 10초를 잘라냅니다.


ffmpeg -i video_full.m4v -c:av 복사 -ss 00:01:00 -t 10 video_short.m4v

어떻게 품질을 향상하다오디오 또는 비디오 스트림? 이렇게 하려면 비트 전송률 스위치 -b 를 사용하세요.


ffmpeg - video.webm -c:a 복사 -c:v vp9 -b:v 2M final.mkv

화면 캡처

x11grab 장치는 화면을 캡처하는 데 사용되며, ffmpeg--enable-x11grab 옵션을 사용하여 빌드해야 합니다.


ffmpeg -f x11grab -framerate 25 -video_size 4cif -i:0.0 out.mpg
  • -video_size 단어- 캡처 크기, cif = 352x288, 4cif = 704x576. 자세한 내용은 ffmpeg-utils 정보를 참조하세요.

보너스 트랙

자동 사진 처리를 위해서는 프로그램을 사용하는 것이 편리합니다. 이미지매직. 폴더에 있는 모든 사진의 크기를 변경합니다.


mogrify -크기 조정 60% *.png

다음과 같이 이미지를 부드럽게 선명하게 합니다. 스마트 선명 효과유틸리티 세트의 변환 및 합성을 사용하여 Perl 스크립트 사용 이미지매직.

관련된 링크들

  1. ffmpeg에 관한 Habrapost, 많이 유용한 명령그러나 대부분의 경우 구문이 이미 변경되었습니다.

이 기사에서는 초보 Linux 사용자(그리고 Windows도 마찬가지)를 위한 FFmpeg가 무엇인지 "손끝에서" 설명하려고 합니다. FFmpeg는 멀티미디어 및 웹 개발자들 사이에서 인기 있는 프로그램 및 라이브러리 세트입니다. FFmpeg를 기반으로 비디오를 한 형식에서 다른 형식으로 변환하기 위한 많은 프로그램이 만들어졌습니다. 이 프로그램의 인기는 매우 높습니다. 그는 왜 그렇게 인기가 있습니까? 가장 자주 사용되는 용도는 무엇입니까? 설치 방법과 실행 방법은 무엇입니까?

이제 막 Ubuntu를 배우기 시작한 경험이 없는 Linux 사용자의 관심을 끌 수 있는 FFmpeg의 주요 기능은 다음과 같습니다.

  • FFMpeg는 무료입니다.
  • 모든 Linux 배포판에서 사용 가능합니다.
  • 어떤 영화든 볼 수 있어요.
  • 모든 종류의 비디오 형식에서 작동합니다.
  • 비디오를 한 형식에서 다른 형식으로 변환할 수 있습니다.
  • 다중 프로세서에서 병렬 인코딩을 지원합니다.
  • NVidia 카드의 가속 인코딩.
  • 프로그램에서 FFmpeg를 사용한 다음 판매할 수 있습니다.

FFmpeg는 Linux, Windows, Mac OS에서 사용할 수 있습니다. 그리고 그것은 어디에서나 동일하게 작동합니다. 따라서 Windows에서 FFmpeg를 사용하는 방법을 배웠다면 Linux에서도 동일한 방식으로 실행해야 하며 그 반대의 경우도 마찬가지입니다.

FFmpeg 절대 자급자족하다. 영화를 보기 위해 인터넷을 검색할 필요도 없고, 코덱을 다운받아 설치할 필요도 없습니다. 하나의 파일(ffplay.exe)이면 충분하며, 모든 코덱이 이 파일에 포함되어 있습니다.

FFmpeg - 무료소프트웨어(GPL 2.0 및 LGPL 2.1 라이센스)를 사용하며 해당 코드를 상업용 및 무료 배포 프로젝트에서 사용할 수 있습니다.

이미 언급했듯이 FFmpeg는 프로그램 모음입니다. "프로그램 세트"는 무엇을 의미합니까? 모든 프로그램을 다운로드해야 합니까, 아니면 별도로 다운로드할 수 있습니까? 안에 무엇이 들어있나요? 이제 우리는 이러한 질문에 답하려고 노력할 것입니다.

하지만 먼저 용어를 정의해 보겠습니다. FF mpeg는 약자입니다 에프 ast 에프이전 MPEG. FFmpeg를 프로그램 세트로 설명할 때 처음 두 글자 “F”는 대문자(FF)여야 합니다.

따라서 FFmpeg는 다음 도구로 구성됩니다. ffmpeg, ffplay, ffserver, ffprobe(참고로 모든 내용은 소문자입니다.) Windows의 경우 이는 정상입니다. exe 파일. 더욱이 그 크기는 매우 인상적입니다. 문제는 모든 비디오 및 오디오 코덱이 이미 그 안에 있다는 것입니다. 영화를 보려면 인터넷에서 ffplay.exe를 다운로드하면 됩니다. 다른 것은 필요하지 않습니다. 설치 프로그램, 코덱, 관리자 권한이 필요하지 않습니다. 다운로드하고 압축을 풀면 영화 감상을 시작할 수 있습니다.

Windows의 FFmpeg에서 각 파일의 크기는 38-39Mb이며 모든 코덱은 실행 파일 "내부"에서 컴파일되고 링크됩니다.

ffmpeg

이 프로그램을 사용하면 비디오를 한 형식에서 다른 형식으로 변환할 수 있습니다. 여러 개의 비디오를 하나로 연결합니다. 비디오를 별도의 프레임(이미지)으로 구문 분석한 다음 다시 연결합니다. 속도를 높이거나 낮추고, 확대/축소하고, 자막과 여러 오디오 트랙을 추가하세요. 그리고 100,500가지 이상의 유용한 작업이 있습니다.

목록 사용 가능한 옵션이 명령의 길이는 203페이지입니다.

인상적이지 않나요?

ffplay


영화를 보는 데 사용되었습니다. 영화를 보면서 FFmpeg에 익숙해지기 시작했다면 ffplay가 필요합니다. ~에 첫 단계초보자를 위한 전체 FFmpeg 패키지는 이 프로그램만 사용하는 것으로 요약됩니다.

ff서버


갑자기 YouTube와 유사한 나만의 비디오 호스팅을 만들고 싶다면 ffserver를 사용하세요.

ffprobe


다운로드한 영화에 대한 모든 것(형식, 재생 시간, 오디오 트랙 수 등)을 알려주는 마법의 프로그램입니다. 영화에 대한 너무 많은 정보가 표시되므로 모두 읽는 데 반나절이 걸릴 것입니다.

네 가지 프로그램 외에도 FFmpeg 패키지에는 무료로 배포되는 라이브러리 세트도 포함되어 있습니다(위 프로그램이 컴파일되는 라이브러리에서):

  • libavutil- 일련의 보조 기능;
  • libav코덱— 오디오/비디오 코덱;
  • libav형식— 컨테이너 작업을 위한 라이브러리
  • libav장치— 미디어 콘텐츠를 제공하는 장치로 작업합니다.
  • libavfilter- 다양한 필터
  • libswscale— 스케일링 라이브러리, 색상 공간 작업
  • libswresample— 사운드 처리 라이브러리.

원칙적으로 전체 FFmpeg 프로젝트가 시작된 것은 이러한 라이브러리 때문이었고 프로그램은 이미 보너스였습니다. :)

이러한 라이브러리를 사용하면 멀티미디어 콘텐츠 작업을 위한 자신만의 애플리케이션을 만들고 판매할 수도 있습니다. 자신만의 비디오 플레이어나 비디오 변환기를 작성하는 것은 어렵지 않습니다. 웹에는 FFmpeg 라이브러리 사용 방법에 대한 튜토리얼과 지침이 가득합니다.

이야기

FFmpeg의 역사는 내용만큼 풍부합니다. 2000년에 시작된 이 라이브러리는 2011년에 일부 개발자가 미디어 콘텐츠 작업을 위해 자체 라이브러리를 만들기로 결정하면서 이를 Libav라고 부르면서 큰 충격을 받았습니다. 그들은 본질적으로 모든 권한이 한 사람의 손에 있고 모든 결정이 그 사람에 의해서만 이루어지는 FFmpeg 프로젝트의 조직에 불만을 품고 프로젝트를 떠나고 싶다고 설명했습니다.

이제 Libav는 자신의 길을 가고 누구의 말도 듣지 않습니다. 코드는 FFmpeg만큼 자주 업데이트되지 않습니다. 각 업데이트를 주의 깊게 확인합니다.

FFmpeg는 빚을 지지 않았으며 정기적으로 이틀에 한 번씩 Libav 팀이 만든 코드 변경 사항을 구멍에 넣습니다. :-)

현재 FFmpeg는 소스 코드 저장소의 스크린샷에서 알 수 있듯이 계속해서 활발하게 개발되고 있습니다.

설치

FFmpeg는 매우 유명하여 많은 Linux 배포판에 기본적으로 포함되어 있습니다. 어떤 이유로 바로 설치하지 않은 경우 나중에 패키지 관리자를 사용하여 설치할 수 있습니다. 초보자를 위한 FFmpeg 설치에는 아무런 문제가 발생하지 않습니다. Linux 배포판에 따라 여러 가지 표준 명령을 실행해야 합니다.

Sudo add-apt-repository ppa:mc3man/trusty-media sudo apt-get 업데이트 sudo apt-get 설치 ffmpeg

Yum -y ffmpeg ffmpeg-devel 설치

오픈수세

지퍼 설치 ffmpeg

제일 최신 버전 Windows용 FFmpeg는 다음에서 다운로드할 수 있습니다.

https://ffmpeg.zeranoe.com/builds/

FFmpeg의 두 가지 유형

FFmpeg가 컴퓨터에 제공되는 두 가지 형식이 있습니다.

1) 정적 빌드— 이 경우 모든 코덱, 필터 및 유틸리티는 ffmpeg.exe(ffprobe.exe, ffplay.exe) "내부"에서 컴파일되며 영화 감상을 시작하려면 이러한 파일 중 하나만 다운로드하면 됩니다(ffplay.exe). 이 경우 실행 가능한 모듈의 크기가 크게 부풀어 오른다(최대 39Mb). 그러나 그것은 매우 편리합니다.

2) 공유 빌드- 여기서 코덱, 필터 및 기타 보조 프로그램은 FFmpeg가 필요에 따라 찾아 로드하는 독립적인 별도 파일입니다. 이 경우 실행 가능한 모듈의 크기는 190Kb에 불과합니다.

Linux에 FFmpeg를 설치하면 공유 빌드가 설치될 확률이 99.9%입니다.

개인적으로 저는 static-build를 선호합니다(다른 라이브러리에 대해 생각할 필요가 없습니다). Linux에서 정적 빌드를 얻으려면 소스 코드에서 직접 FFmpeg를 빌드해야 합니다. 새로운 Linux 사용자에게는 이것이 어려울 수 있습니다.

영화를 보는 방법?

모든 것이 명확하지만 영화를 보는 방법은 무엇입니까? 위에서 언급했듯이 ffplay(ffplay.exe - Windows용)는 콘솔 프로그램입니다. 즉, 그래픽 인터페이스가 없습니다. 비디오를 보려면 명령줄에서 실행해야 합니다.

Ffmpeg.exe film.avi

그 후 영화가 즉시 재생되기 시작합니다.

초보 사용자에게는 이 영화 실행 방법이 이상해 보일 수 있습니다. 하지만 이것이 ffplay의 모든 힘입니다. ffmpeg와 마찬가지로 수많은 옵션이 있어 가장 까다로운 영화 애호가를 위해 사진을 맞춤 설정하는 데 도움이 됩니다.

팀으로 일할 때 확신이 없다면 윈도우 문자열, 다음 방법을 사용할 수 있습니다. 마우스로 영화를 잡고 ffplay.exe로 드래그하면 영화가 즉시 재생되기 시작합니다.

재생 제어(짧은 명령 목록):

q, ESC- 출구,
에프전체 화면(마우스 왼쪽 버튼으로 더블 클릭),
- 정지시키다
— 소리 켜기/끄기,
9, 0 - 볼륨 업/다운,
- 자막 전환,
- 사이클 프로그램
에스— 영화를 통한 프레임별 이동,
왼쪽/오른쪽 화살표— 10초 뒤로/앞으로 이동합니다.
아래쪽/위쪽 화살표— 1분씩 뒤로/앞으로 이동합니다.
페이지 아래로/페이지 위로— 10분 뒤로/앞으로 이동합니다.

ffplay 플레이어의 그래픽 인터페이스는 다소 금욕적으로 보이거나 전혀 존재하지 않습니다. 그래픽 인터페이스를 갖춘 미디어 플레이어에는 일반적인 슬라이더, 버튼, 메뉴가 없습니다. ffplay로 작업할 때 영화 "매트릭스"처럼 영화 자체와 터미널 창에 깜박이는 이상한 숫자와 단어만 볼 수 있습니다. 실제로 키보드로 영화를 제어하는 ​​것은 간단하고 명확합니다. 몇 번 본 후에는 손가락이 어떤 버튼을 눌러야 할지 기억하게 될 것입니다.

다양한 옵션으로 ffplay를 실행하는 몇 가지 예:

이미지 크기를 너비의 4배로 줄입니다.

Ffplay -vf scale=iw/4:-1 video.avi

소음으로부터 선명한 비디오

Ffplay -vf hqdn3d=4:3:6:4.5 video.avi

2배 가속

Ffplay -vf setpts=0.5*PTS video.avi

어떻게 녹음하나요?

mpg를 avi로 변환하세요

Ffmpeg -i video.mpg video.avi

비디오에서 오디오를 추출하고 MP3로 녹음합니다.

Ffmpeg -i video.mp4 -vn -ab 128 audio.mp3

오디오와 비디오 결합

Ffmpeg -i audio.wav -i video.avi final_video.mpg

비디오 트랙 추출(오디오 제외)

Ffmpeg -i video.mp4 -an video_bez_zvuka.mp4

비디오의 크기를 조정

Ffmpeg -i video.mp4 -s 640x480 -c:a video640480.mp4 복사

영상의 처음 45초를 버리고 40초 정도의 구간을 남겨둡니다.

WAV를 MP3로 트랜스코드

Ffmpeg -i audio.wav -b:a 192k audio.mp3

비디오를 프레임(이미지)으로 분해

Ffmpeg -i video.webm 엄지%04d.jpg

이미지 세트로 비디오 만들기

Ffmpeg -i 프레임-%03d.png video.avi

결론

이 기사는 독자에게 가장 강력한 FFmpeg 프로그램 세트를 소개하는 것을 목표로 합니다. 주어진 간단한 설명 FFmpeg 패키지. 비디오 시청과 오디오 및 비디오 자료 처리(변환)에 대한 사용 예가 제공됩니다.

FFmpeg 패키지 기능 중 일부만 나열되어 있습니다. 첫인상은 이 정도면 충분할 것 같아요. 그 뒤에는 다중 패스 인코딩, 필터 및 필터 체인, Avisynth와의 조합, 타사 코덱과 FFmpeg 어셈블리와 같은 FFmpeg 기능이 남아 있습니다.

이 기사의 목적은 초보 Linux 사용자를 위한 FFmpeg가 미디어 콘텐츠 작업 시 없어서는 안 될 도구라는 점을 보여주는 것이었습니다. GUI가 부족하다고 두려워할 필요가 없습니다. 콘솔에서 오디오 및 비디오 작업을 수행하는 것도 매우 효과적일 수 있습니다.

추신 FFmpeg를 자주 사용해야 하기 때문에 대중적인 사용 기술을 모두 한 권의 책에 모아보기로 했습니다.