ffmpeg - .aac 오디오 파일을 크기가 정확히 4.00초인 작은 부분으로 분할하는 방법(따라서 키프레임 무시)

ffmpeg - .aac 오디오 파일을 크기가 정확히 4.00초인 작은 부분으로 분할하는 방법(따라서 키프레임 무시)

오디오 파일 .aac를 작은 부분으로 정확하게 분할하는 방법4.0초, 즉. 키프레임을 무시하시겠습니까?

원본 비디오 파일은 .mp4 형식입니다. 이 비디오 파일에서 .aac 오디오 파일을 얻었습니다. 하지만 분할된 오디오 파일의 새 부분은 항상 3.4초이므로 4.0초의 오디오가 필요합니다. 키프레임에 문제가 있을 수 있습니다.

감사해요.

cd $DIR_IN
for file in *.mp4
do
    echo "Extracting the whole audio-track from $file to $DIR_TMP/${file%.mp4}.aac"
    ffmpeg -i "$file" -vn -acodec copy $DIR_TMP/"${file%.mp4}.aac"

    echo "Splitting the large video-file $file to a smaller audio-files '${file%.mp4}'XXX.aac"
    ffmpeg -i $DIR_TMP/"${file%.mp4}.aac" -c copy -f segment -segment_time 4 $DIR_TMP/"${file%.mp4}%03d.aac"

    rm -f $DIR_TMP/"${file%.mp4}.aac"
done

답변1

문제가 해결되었습니다.

#!/bin/bash
avfile=/tmp/video.mp4
ffmpeg -i "$avfile" -c:v libx264 -crf 23 -map 0 -segment_time 4 -g 4 -sc_threshold 0 -force_key_frames "expr:gte(t,n_forced*4)" -f segment /tmp/output/"${avfile%.mp4}%03d.mp4"

답변2

ffmpeg -i sourcefile.aac -f segment -segment_time 4 -c copy out%03d.aac 4초짜리 파일이 생성 out000.acc됩니다 out001.acc. 마지막 파일은 4초 이하일 수 있습니다.

인용하다:"지정된 분할 속도로 오디오 스트림 분할" 예https://gist.github.com/protolium/e0dbd4bb0f1a396fcb55

관련 정보