Я использую ffmpeg для создания списка воспроизведения видео в реальном времени из папки mp3s и папки с видео.
Мне бы хотелось, чтобы новая песня появлялась в новом цикле видео до следующей песни.
Изначально я использовал live-stream-radio , что идеально , за исключением , как он обрабатывается, после каждой дорожки инициализируется новый поток ffmpeg l oop. И во многих клиентах это вызывает команду остановки, и между ними появляется «мертвая зона».
Моя попытка была при создании текстового файла списка воспроизведения gif (это были gifs, но я преобразовал в mp4), я установил длительность для продолжительности соответствующей дорожки. Проблема заключается в том, что видео воспроизводится один раз, а затем останавливается на последнем кадре до следующей дорожки.
rm music.txt
rm gifs.txt
printf "ffconcat version 1.0\n" >> gifs.txt
printf "ffconcat version 1.0\n" >> music.txt
for i in {1..9}; do
printf "file 'mp3/00%s.mp3'\n" $i >> music.txt
done
for i in {1..9}; do
DURATION=$(ffmpeg -i mp3/00$i.mp3 2>&1 | awk '/Duration/ { print substr($2,0,length($2)-1) }')
printf "file 'gif/00%s.mp4'\nduration %s\n" $i $DURATION >> gifs.txt
done
ffmpeg \
-stream_loop -1 \
-i gifs.txt \
-i music.txt \
-vcodec libx264 \
-f flv "$URL"
Любые идеи здесь будут хороши.