ffmpeg - stream_l oop mp3 + зацикленное видео (за трек) - PullRequest
0 голосов
/ 17 апреля 2020

Я использую 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"

Любые идеи здесь будут хороши.

...