
현재 .txt 파일에서 로드된 오디오 파일 스트림을 반복하려고 합니다.
#! /bin/bash
VBR="1500k"
FPS="30"
QUAL="ultrafast"
YOUTUBE_URL=" rtmp://a.rtmp.youtube.com/live2"
YOUTUBE_KEY="****"
VIDEO_SOURCE="video.mp4"
AUDIO_ENCODER="aac"
ffmpeg \
-stream_loop -1 \
-re \
-i "$VIDEO_SOURCE" \
-thread_queue_size 512 \
-stream_loop -1 \
-re \
-f concat -i audiofiles.txt \
-c:v libx264 -preset $QUAL -r $FPS -g $(($FPS *2)) -b:v $VBR -bufsize 3000k -maxrate $VBR \
-c:a $AUDIO_ENCODER -ar 44100 -b:a 128k -pix_fmt yuv420p \
-f flv $YOUTUBE_URL/$YOUTUBE_KEY
결과적으로 재생 목록이 한 번 재생된 다음 중지됩니다. 루프를 강제로 실행하려면 어떻게 해야 합니까?
답변1
그만큼연결 demxuer입력 텍스트 파일은 자신을 참조하여 무한 루프를 생성할 수 있습니다.
예시 내용 audio.txt
:
ffconcat version 1.0
file 'audio1.mp3'
file 'audio2.mp3'
file 'audio.txt'
ffconcat version 1.0
이것이 작동하려면 헤더가 필요합니다.
나열된 2개의 오디오 파일을 연속적으로 반복 audio.txt
하고 다음과 같은 기간에 출력 기간을 종료하는 간단한 예제 명령 video.mp4
:
ffmpeg -i video.mp4 -f concat -i audio.txt -shortest output.mp4