ffmpeg 다른 비디오의 시작과 끝 부분에 비디오 추가

ffmpeg 다른 비디오의 시작과 끝 부분에 비디오 추가

그래서 다음 명령어를 사용해서 모든 영상을 /home/vidsmp4로 변환해서 출력했는데, /home/vids2이제 /home/vids.

비디오 링크는 /home/intro/play.mp4에서 모든 비디오 전후에 재생되어야 하는 비디오 입니다 /home/vids. 10초인지 를 명확히 하기 위해 /home/intro/play.mp4"/home/vids"에 있는 동영상의 길이가 30초라면 이를 병합한 후 완성된 동영상의 길이는 50초가 되어야 합니다.

find /home/vids -type f -execdir ffmpeg -i '{}' -filter:v drawtext="fontfile=/root/FreeSans.ttf:text='TEXT EXAMPLE':[email protected]:fontsize=24:y=h-line_h-30:x=w/20*mod(t\,60)" -f mp4 -vcodec libx264 -preset fast -profile:v main -acodec aac -movflags +faststart '/home/vids2/{}.mp4' \;

답변1

비디오가 동일한 코덱을 사용하여 인코딩된 경우 이 concat연산자를 사용할 수 있습니다.

코덱과 코덱 매개변수가 정확히 동일한 미디어 파일이 있는 경우 "동일한 코덱을 사용하는 파일 연결"에 설명된 대로 이를 연결할 수 있습니다. 미디어에 서로 다른 코덱이 있는 경우 아래의 "다른 코덱을 사용하는 파일 연결"에 설명된 대로 이를 연결할 수 있습니다.

$ cat build_ffmpegs.bash
#!/bin/bash

intro=/home/intro/play.mp4
outro=/home/intro/play.mp4

cd /home/vid

for i in vid*; do
    ffmpeg -f concat -safe 0 \
      -i < <(printf "file '%s'\n" $intro $(readlink -f $i) $outro) \
      -c copy /home/vid2/output_${i}
done

ffmpeg이 명령을 실행하면 다음 명령이 생성됩니다 .

ffmpeg -f concat -safe 0 -i < <(printf "file '%s'\n" /home/intro/play.mp4 /home/vid/vid1.mp4 /home/intro/play.mp4) -c copy /home/vid2/output_vid1.mp4
ffmpeg -f concat -safe 0 -i < <(printf "file '%s'\n" /home/intro/play.mp4 /home/vid/vid2.mp4 /home/intro/play.mp4) -c copy /home/vid2/output_vid2.mp4
ffmpeg -f concat -safe 0 -i < <(printf "file '%s'\n" /home/intro/play.mp4 /home/vid/vid3.mp4 /home/intro/play.mp4) -c copy /home/vid2/output_vid3.mp4
ffmpeg -f concat -safe 0 -i < <(printf "file '%s'\n" /home/intro/play.mp4 /home/vid/vid4.mp4 /home/intro/play.mp4) -c copy /home/vid2/output_vid4.mp4
ffmpeg -f concat -safe 0 -i < <(printf "file '%s'\n" /home/intro/play.mp4 /home/vid/vid5.mp4 /home/intro/play.mp4) -c copy /home/vid2/output_vid5.mp4

ffmpeg필요한 다른 세부 사항에 맞게 여기에서 명령을 조정할 수 있어야 합니다 .

인용하다

관련 정보