ffmpeg drawtext 시간 코드 변경 기간

ffmpeg drawtext 시간 코드 변경 기간

일반적으로 프레임 속도를 변경할 때 Adobe Premiere를 사용하고 비디오 자료를 새로운 프레임 속도로 해석하므로 지속 시간이 변경됩니다. 괜찮아. 그런데 제가 변환하고 싶은 mkv 파일이기 때문에 ffmpeg를 사용합니다.

하지만 타임코드를 추가하는 동안 ffmpeg에 이상한 문제가 발생했습니다.

내가 사용하는 코드는 다음과 같습니다.

/Applications/ffmpeg -probesize 50M -analyzeduration 100M -i "$f" -map 0:0 -map 0:1 -c:a pcm_s24le -async 1 -c:v dnxhd -b:v 36000k -r 25 -s 1920x1080 -aspect 16:9 -pix_fmt yuv422p -coder ac -trellis 0 -colorspace bt709 -color_range mpeg -subq 6 -me_range 16 -sc_threshold 40 -keyint_min 25 -g 50 -metadata creation_time=now -af atempo=1/0.95904 -vf setpts="0.95904*PTS" -vf drawtext="fontsize=30:fontfile=/library/fonts/tahoma.ttf: timecode='01\:00\:00\:00': r=25: x=main_w-180: y=30: fontcolor=white@1: box=1: boxcolor=0x00000000@1" -sn -y "/Volumes/videos/$FILENAME.mov" 

제작된 영상의 길이는 약 42분입니다.

drawtext 없이 비디오를 렌더링할 때:

/Applications/ffmpeg -probesize 50M -analyzeduration 100M -i "$f" -map 0:0 -map 0:1 -c:a pcm_s24le -async 1 -c:v dnxhd -b:v 36000k -r 25 -s 1920x1080 -aspect 16:9 -pix_fmt yuv422p -coder ac -trellis 0 -colorspace bt709 -color_range mpeg -subq 6 -me_range 16 -sc_threshold 40 -keyint_min 25 -g 50 -metadata creation_time=now -af atempo=1/0.95904 -vf setpts="0.95904*PTS" -sn -y "/Volumes/videos/$FILENAME.mov"

렌더링된 비디오 지속 시간은 40분59초입니다. 그것은 제가 원했던 기간이며 Adobe가 생성하는 것과 동일합니다.

사진에 타임코드가 표시된 경우 비디오 지속 시간이 없는 경우보다 긴 이유는 무엇입니까?

ffmpeg를 사용하여 올바른 방법으로 mkv를 25fps 및 번인 타임코드가 있는 DNxHD로 변환하려면 어떻게 해야 합니까?

답변1

귀하의 로그는 다음과 같이 말합니다:

Multiple -filter, -af or -vf options specified for stream 0, only the last option '-filter:v drawtext' will be used.

이는 귀하의 setpts가 무시되고 따라서 지속 시간이 더 길어짐을 의미합니다.

하나만 사용 하거나 오디오 및 비디오 필터링에 모두 -vf사용하십시오 .-filter_complex

/Applications/ffmpeg -probesize 50M -analyzeduration 100M -i "$f" -map 0:0 -map 0:1 -c:a pcm_s24le -async 1 -c:v dnxhd -b:v 36000k -r 25 -s 1920x1080 -aspect 16:9 -pix_fmt yuv422p -coder ac -trellis 0 -colorspace bt709 -color_range mpeg -subq 6 -me_range 16 -sc_threshold 40 -keyint_min 25 -g 50 -metadata creation_time=now -af atempo=1/0.95904 -vf setpts="0.95904*PTS,drawtext=fontsize=30:fontfile=/library/fonts/tahoma.ttf: timecode='01:00:00:00': r=25: x=main_w-180: y=30: fontcolor=white@1: box=1: boxcolor=0x00000000@1" -sn -y "/Volumes/videos/$FILENAME.mov"
  • timecode='01:00:00:00'로 변경해야 할 수도 있습니다 timecode='01\:00\:00\:00'.
  • 보다필터링 소개.

관련 정보