FFmpeg: Зацикливание потока из нескольких файлов

FFmpeg: Зацикливание потока из нескольких файлов

В настоящее время пытаюсь зациклить поток аудиофайлов, загруженных из файла .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

Theconcat демксюерВходной текстовый файл может ссылаться сам на себя, создавая бесконечный цикл.

Пример содержания 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

Адаптирован изМожно ли создать бесконечный цикл с помощью concat?

Связанный контент