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