ffmpeg トランスコーディングと HLS

ffmpeg トランスコーディングと HLS

入力ストリームを小さい 2 にトランスコードします。

ffmpeg -re -v info -i "rtmp://localhost/live/stream live=1" \
-c:v libx264 -b:v 500k -vf scale=540:-1 -preset faster -copyts \
-c:a aac -b:a 64k -ac 2 -flags +global_header \
-f flv "rtmp://localhost/live/500k live=1" \
-c:v libx264 -b:v 800k -vf scale=720:-1 -preset faster -copyts \
-c:a aac -b:a 64k -ac 2 -flags +global_header \
-f flv "rtmp://localhost/live/800k live=1"

次に、それらを AMS livepkgr HLS アプリに中継する必要があります。

ffmpeg -re -v info \
-i "rtmp://localhost/live/500k live=1" \
-c copy -copyts -flags +global_header \
-f flv "rtmp://localhost/livepkgr/500k?adbe-live-event=liveevent" \
-i "rtmp://localhost/live/800k live=1" \
-c copy -copyts -flags +global_header \
-f flv "rtmp://localhost/livepkgr/800k?adbe-live-event=liveevent"

結果のストリームはキーフレームが揃っていません。FMLE エンコーダーのように ffmpeg でキーフレームが揃っているようにすることはできますか? ご清聴ありがとうございました。

答え1

試す

ffmpeg -re -v info -i "rtmp://localhost/live/stream live=1" \
-filter_complex "[0:v]split[a][b];[a]scale=540:-1[oa];[b]scale=720:-1[ob]" \
-map [oa] -c:v libx264 -b:v 500k -preset faster -copyts \
-map 0:a -c:a aac -b:a 64k -ac 2 -flags +global_header \
-f flv "rtmp://localhost/live/500k live=1" \
-map [ob] -c:v libx264 -b:v 800k -preset faster -copyts \
-map 0:a -c:a aac -b:a 64k -ac 2 -flags +global_header \
-f flv "rtmp://localhost/live/800k live=1"

関連情報