
現在、.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
の連結デムクュアー入力テキスト ファイルは、それ自体を参照して無限ループを作成することができます。
内容の例audio.txt
:
ffconcat version 1.0
file 'audio1.mp3'
file 'audio2.mp3'
file 'audio.txt'
これを機能させるにはヘッダーffconcat version 1.0
が必要です。
audio.txt
にリストされている 2 つのオーディオ ファイルを連続的にループし、出力期間を同じ期間で終了する簡単なサンプル コマンドvideo.mp4
:
ffmpeg -i video.mp4 -f concat -i audio.txt -shortest output.mp4