FFMPEG 일반 명령 오디오 및 비디오 병합

       

목차

1. 오디오 병합

1. 오디오 길이 가져오기

2. 두 개의 오디오 병합

3. 오디오를 병합하여 공백 삽입

2. 동영상 플러스 배경 이미지

3. 오디오 및 비디오 합성

1. 비디오 사운드 보존

2. 영상음 유지 안함

4. 비디오 병합


        이 기사에서는 몇 가지 예를 사용하여 주로 오디오 처리, 비디오 처리 및 오디오 및 비디오 합성과 관련된 ffmpeg 명령의 포괄적인 사용을 소개합니다.

1. 오디오 병합

1. 오디오 길이 가져오기

ffprobe -i 1.mp3 -show_entries format=duration -v quiet -of csv="p=0"

2. 두 개의 오디오 병합

ffmpeg -i 1.mp3 -i 2.mp3 -filter_complex amerge -ac 2 -c:a libmp3lame -q:a 4 output.mp3

매개변수 설명:

-ac: 사운드 채널 수 설정 

-c:a: 오디오 인코더 지정

libmp3lame: mp3 오디오 인코더

-q:a: 일반적으로 1에서 5 사이의 출력 오디오 품질을 나타냅니다(1이 가장 높은 품질임). 

3. 오디오를 병합하여 공백 삽입

        세 개의 오디오 세그먼트를 병합하여 각 세그먼트 사이에 1초 간격을 추가합니다.

ffmpeg -i 1.mp3 -i 2.mp3 -i 3.mp3 -filter_complex "[1:a]adelay=1000[a1];[2:a]adelay=1000[a2];[0:a][a1][a2]concat=n=3:v=0:a=1" output.mp3

매개변수 설명:

[1:a]adelay=1000[a1]: 두 번째 세그먼트 자료의 오디오(비디오인 경우 [1:v]), 재생이 1000밀리초 지연되고 값이 나중에 사용하기 위해 a1에 할당됩니다. . 같은 방식으로 a2가 정의됩니다.

[0:a][a1][a2]concat=n=3: 첫 번째 자료의 오디오 a1과 a2를 합치고 n=3은 3개의 세그먼트를 의미합니다.

v=0:a=1: 소리 없음, 오디오만.

2. 동영상 플러스 배경 이미지

        가로 버전의 영상을 1080x1920 세로 버전의 배경 앞에 위아래로 같은 거리로 배치한 다음, 배경이 투명한 자막 사진을 집 상단에 배치하여 다음과 같은 효과를 얻을 수 있습니다.

ffmpeg -i 1.mp4 -i bg.jpg -i font.png -filter_complex "[0:v]scale=1080:-1[video];[1:v][video]overlay=x=0:y=(1920-h)/2[v1];[v1][2:v]overlay" -codec:a copy  output1.mp4

매개변수 설명:

[0:v]scale=1080:-1[동영상]: 첫 번째 자료의 영상만 찍고, 비율에 따라 폭 1080으로 크기를 조정하고 출력 값을 영상에 할당합니다.

[1:v][video]overlay=x=0:y=(1920-h)/2[v1]: 배경 이미지의 상위 레이어에 비디오를 배치하고 위치는 x, y이며 출력 값 v1입니다.

[v1][2:v]overlay: v1 위에 세 번째 자료의 영상을 배치합니다.

-codec:a 복사: 기능 집합 목록의 이름을 사용해야 하는 사운드의 코덱을 지정합니다(코덱은 수행되는 코덱이 없음을 나타내기 위해 "복사"로 설정됨).

3. 오디오 및 비디오 합성

1. 비디오 사운드 보존

        원본 영상은 소리가 있습니다. 원본 영상의 소리는 그대로 유지하면서 배경음을 추가하고 배경음의 볼륨을 작게 만듭니다.

ffmpeg -i 1.mp4 -i 1.mp3 -filter_complex "[1:a]volume=0.3[a1];[0:a][a1]amix=inputs=2:duration=first[a]" -map 0:v -map "[a]" -c:v copy -c:a aac -y output.mp4

매개변수 설명:

[1:a]volume=0.3[a1]: 두 번째 자료의 오디오 볼륨은 30%이고 출력 값은 a1입니다.

[0:a][a1]amix=inputs=2:duration=first[a]: 첫 번째 소재(비디오)의 사운드가 배경 사운드와 혼합되고 지속 시간은 첫 번째 소재의 사운드이며 출력 값은

-map 0:v: 비디오 스트리밍 스플라이싱, 여기에는 하나의 비디오만 있습니다.

-map "[a]": 오디오 스트림 스플라이싱, 여기서는 그냥 출력을 취합니다.

-c:v 복사: 비디오 인코딩이 변경되지 않았습니다.

-c:a aac : 오디오 인코딩 acc.

2. 영상음 유지 안함

        원본 영상의 소리를 제거하고 다시 더빙한 후 소리 앞에 1초의 여백을 추가합니다.

ffmpeg -i 1.mp4 -i 1.mp3 -filter_complex "[0:v]trim=0:10.1[v];[1:a]adelay=1000[a];[v][a]concat=n=1:v=1:a=1" -c:v libx264 -c:a aac -movflags +faststart output.mp4

매개변수 설명:

[0:v]trim=0:10.1[v]: 비디오는 1-10.1초가 소요되며 여기서 단위는 초이며 출력은 v로 지정됩니다.

[1:a]adelay=1000[a]: 오디오 데모는 1000밀리초 단위로 재생되며 여기서 단위는 밀리초입니다.

[v][a]concat=n=1:v=1:a=1: 오디오와 비디오가 결합되고 출력에는 비디오와 오디오가 필요합니다.

-c:v libx264: 비디오 인코딩에 x264 사용;

-c:a aac: 오디오 인코딩 acc;

-movflags +faststart: 이 매개변수는 mp4의 메타데이터와 관련이 있으며, faststart로 설정하면 moov가 mdat의 맨 앞으로 이동하고 온라인 플레이 시 약간 더 빨라집니다.

4. 비디오 병합

        여러 비디오를 병합하려면 먼저 merge_video.txt와 같은 비디오 목록 파일을 다음 콘텐츠로 생성할 수 있습니다.

file '1.mp4'
file '2.mp4'
file '3.mp4'
file '4.mp4'

        그런 다음 이 파일을 비디오 병합에 사용하십시오.

ffmpeg.exe -f concat -safe 0 -i merge_video.txt -c copy -y merge_video.mp4

매개변수 설명:

-f concat: 접합 작업을 나타냅니다.

-safe 0: 파일 보안 검사 수준을 0으로 표시합니다. 즉, 보안 요소를 고려하지 않습니다.

-c 복사: 인코딩이 변경되지 않은 상태로 유지됩니다.

-y: 출력 파일 덮어쓰기

추천

출처blog.csdn.net/xian0710830114/article/details/130921272