비디오 자르기 및 병합을 위한 오디오 및 비디오 fmpeg 명령

1. 테스트 파일 생성

3개의 서로 다른 동영상을 찾아 각 동영상을 10초씩 캡처하세요.

ffmpeg -i 沙海02.mp4 -ss 00:05:00 -t 10 -codec copy 1.mp4
ffmpeg -i 复仇者联盟3.mp4 -ss 00:05:00 -t 10 -codec copy 2.mp4
ffmpeg -i 红海行动.mp4 -ss 00:05:00 -t 10 -codec copy 3.mp4

오디오 및 비디오 형식이 통합되지 않은 경우 -vcodec libx264 -acodec aac로 강제로 통합됩니다.

위의 1.mp4/2.mp4/3.mp4를 ts 형식으로 변환합니다.

ffmpeg -i 1.mp4 -codec copy -vbsf h264_mp4toannexb 1.ts
ffmpeg -i 2.mp4 -codec copy -vbsf h264_mp4toannexb 2.ts
ffmpeg -i 3.mp4 -codec copy -vbsf h264_mp4toannexb 3.ts

flv 형식으로 변환

ffmpeg -i 1.mp4 -codec copy 1.flv
ffmpeg -i 2.mp4 -codec copy 2.flv
ffmpeg -i 3.mp4 -codec copy 3.flv

특정 캡슐화 형식(예: MP4/FLV/MKV 등)에서 H.264를 분리하는 경우 SPS 및 PPS를 먼저 작성해야 합니다. 그렇지 않으면 분리된 데이터가 SPS 및 PPS 없이 재생되지 않습니다. H.264 코드 스트림의 SPS 및 PPS 정보는 AVCodecContext 구조의 추가 데이터에 저장됩니다. ffmpeg에서 "h264_mp4toannexb"라는 비트스트림 필터를 사용해야 합니다.

2. 파일 접합 시작

MP4 형식으로 접합

方法1:ffmpeg -i "concat:1.mp4|2.mp4|3.mp4" -codec copy out_mp4.mp4 
方法2:ffmpeg -f concat -i mp4list.txt -codec copy out_mp42.mp4

TS 형식의 접합

方法1:ffmpeg -i "concat:1.ts|2.ts|3.ts" -codec copy out_ts.mp4 
方法2:ffmpeg -f concat -i tslist.txt -codec copy out_ts2.mp4

FLV 형식의 접합

方法1:ffmpeg -i "concat:1.flv|2.flv|3.flv" -codec copy out_flv.mp4 
方法2:ffmpeg -f concat -i flvlist.txt -codec copy out_flv2.mp4

방법 1은 일부 포장 형식에만 적용됩니다. 예를 들어 TS
권장 사항:
(1) 접합에는 방법 2를 사용합니다.
(2) TS 형식으로 변환한 후 접합합니다.

3. 다양한 인코딩 접합 테스트

오디오 인코딩 수정

ffmpeg -i 2.mp4 -vcodec copy -acodec ac3 -vbsf h264_mp4toannexb 2.ts
ffmpeg -i "concat:1.ts|2.ts|3.ts" -codec copy out1.mp4 结果第二段没有声音

오디오 샘플링 속도 수정

ffmpeg -i 2.mp4 -vcodec copy -acodec aac -ar 96000 -vbsf h264_mp4toannexb 2.ts
ffmpeg -i "concat:1.ts|2.ts|3.ts" -codec copy out2.mp4 第二段播放异常

비디오 인코딩 형식 수정

ffmpeg -i 1.mp4 -acodec copy -vcodec libx265 1.ts
ffmpeg -i "concat:1.ts|2.ts|3.ts" -codec copy out3.mp4 

비디오 해상도 수정

ffmpeg -i 1.mp4 -acodec copy -vcodec libx264 -s 800x472 -vbsf h264_mp4toannexb 1.ts
ffmpeg -i "concat:1.ts|2.ts|3.ts" -codec copy out4.mp4

참고:
(1) 각 비디오 캡슐화 형식을 ts로 통일한 다음 MP4 등 스플라이싱 및 출력 시 필요한 캡슐화 형식을 출력합니다. (
2) 비디오 해상도는 다를 수 있지만 인코딩 형식은 통일되어야 합니다.
(3) 오디오 인코딩 형식 통일 필요, 오디오 매개변수(샘플링 레이트/채널 등)도 통일 필요


Zero Sound Academy 프로젝트 수업을 추천합니다. 개인적으로 선생님이 잘 가르쳐 주시고 모두와 공유한다고 생각합니다.
Zero Sound Platinum 학습 카드(인프라/고성능 스토리지/golang 클라우드 네이티브/오디오 및 비디오/Linux 커널 포함)
https: //xxetb.xet .tech/s/VsFMs

추천

출처blog.csdn.net/qq_40135848/article/details/132590751