
Derzeit wird versucht, einen Stream von Audiodateien, die aus einer TXT-Datei geladen wurden, in einer Schleife abzuspielen:
#! /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
Das Ergebnis ist, dass die Wiedergabeliste einmal abgespielt wird und dann stoppt. Wie kann ich die Schleife erzwingen?
Antwort1
Derconcat demxuerDie Eingabetextdatei kann auf sich selbst verweisen, um eine Endlosschleife zu erstellen.
Beispielinhalte von audio.txt
:
ffconcat version 1.0
file 'audio1.mp3'
file 'audio2.mp3'
file 'audio.txt'
ffconcat version 1.0
Damit dies funktioniert, ist der Header erforderlich.
Einfacher Beispielbefehl zum kontinuierlichen Wiedergeben von zwei in aufgelisteten Audiodateien audio.txt
und Beenden der Ausgabedauer mit der gleichen Dauer wie video.mp4
:
ffmpeg -i video.mp4 -f concat -i audio.txt -shortest output.mp4
Adaptiert vonIst es möglich, mit concat eine Endlosschleife zu erstellen?