なぜffplayを使用してダッシュストリームを取得できないのですか?

なぜffplayを使用してダッシュストリームを取得できないのですか?

nginx.confは簡単です。

sudo cat /usr/local/nginx/conf/nginx.conf    
worker_processes  1; 
error_log logs/error.log error;
events {
    worker_connections  4096;
}

rtmp { 
    server { 
        listen 1935; 
        application live { 
            live on; 
            dash on; 
            dash_path /mnt/dash; 
            dash_fragment 15s; 
        } 
    } 
} 
 
http { 
    server { 
        listen 80; 
        location /dash { 
            root /mnt; 
        } 
    }
 
    types {
        text/html html;
        application/dash+xml mpd;
    } 
}

Webカメラを127.0.0.1にプッシュしました。

output="rtmp://127.0.0.1:1935/live/sample"
ffmpeg -f v4l2 -video_size 640x480 -i /dev/video0 -c:v libx264 -f flv $output

rtmpプロトコルを使用してインポートする:

ffplay  rtmp://127.0.0.1:1935/live/sample

成功!

ダッシュプロトコルを使用してドラッグします。

ffplay  http://127.0.0.1/dash/sample.mpd

エラーが発生しました:

http://127.0.0.1/dash/sample.mpd: Invalid data found when processing input

どうすれば修正できますか?
私のオペレーティングシステム:debian9。

ffplay -formats |& grep "DASH Muxer"
  E dash            DASH Muxer

ベストアンサー1

DASH Demusingを有効にして再コンパイルする必要がありますffplay。 DASHの逆多重化を有効にしたオペレーティングシステム用にすでに事前に作成されたパッケージがあるかもしれませんが、わからないので、使用しているOSを指定していないので、ffplayDASHの逆多重化を有効にして実行する方法について説明します。関数を再利用するときは手動でビルドしてください。

ffmpegリポジトリを複製します。

git clone --depth 1 https://git.ffmpeg.org/ffmpeg.git ffmpeg

ffmpegディレクトリに切り替えます。

cd ffmpeg

必須パラメータを使用して./configureスクリプトを実行します。

./configure --prefix=$HOME/ffmpeg-install --enable-demuxer=dash --enable-libxml2

以下のためにffplayをビルドしてインストールします$HOME/ffmpeg-install

make -j$(nproc) install

私のコンピュータでは4分しかかかりませんでした。 ffmpegの新しいビルドでDASH Demushingがサポートされていることを確認してください。

$ ~/ffmpeg-install/bin/ffplay -formats |& grep "DASH Muxer"
 DE dash            DASH Muxer

在庫ffplayの代わりにこれを使用してください。

~/ffmpeg-install/bin/ffplay http://127.0.0.1/dash/sample.mpd

引用:この回答

おすすめ記事