私はこの問題に数日間立ち往生しており、完全に機能する例を見つけることができませんでした。
これが私の現在の方法です:
ステップ1。
ffmpeg -re -i sample.mp4 -threads 0 -y \
-map 0:1 -vn -acodec aac -strict -2 -ar 48000 -ac 2 \
-f segment -segment_time 4 -segment_format mpegts Dash\audio_%d.ts \
-map 0:0 -vcodec libx264 -vprofile baseline -preset veryfast \
-s 640x360 -vb 512k -bufsize 1024k -maxrate 512k -level 31 -keyint_min 25 -g 25 \
-sc_threshold 0 -an -bsf h264_mp4toannexb -flags -global_header \
-f segment -segment_time 4 -segment_format mpegts Dash\video_%d.ts
ステップ2。
mp4box -add Dash\audio_%d.ts Output\audio_%d.ts.mp4
mp4box -add Dash\video_%d.ts Output\video_%d.ts.mp4
ステップ 3。
mp4box -dash-ctx Output\dash-live.txt -dash 4000 \
-rap -ast-offset 12 -no-frags-default -bs-switching no \
-min-buffer 4000 -url-template -time-shift 1800 \
-segment-name live_$RepresentationID$_ -out Output\live \
-dynamic -mpd-refresh 2 -subsegs-per-sidx -1 Output\audio_%d.ts.mp4:id=audio Output\video_%d.ts.mp4:id=video
Dash.js を使用して生成された live.mpd を再生しましたが、プレーヤーは実際に再生する前に長い間一時停止し、新しい m4s ファイルを取得するたびにフリーズしました。
私のコマンドに何か問題がありますか?または、他の良い例を提供できれば素晴らしいでしょう。