ffmpeg + nginx は rtsp ビデオ ストリームを m3u8 ビデオ ストリームに変換し、プッシュ ストリームをトランスコーディングします (Linux)

FFmpeg は、オーディオおよびビデオのエンコードおよびデコード ツールであるだけでなく、オーディオおよびビデオのエンコード開発キットのセットでもあり、エンコード開発キットとして、開発者にオーディオおよびビデオの処理のための豊富な呼び出しインターフェイスを提供します。

FFmpeg は、複数のオーディオおよびビデオのエンコード、複数プロトコルのストリーミング メディア、複数のカラフルなフォーマット変換、複数のサンプリング レート変換、複数のコード レート変換などを含む、さまざまなメディア フォーマットのカプセル化とカプセル化解除を提供します。FFmpeg フレームワークは、複数のさまざまなプラグインを提供します。パッケージ化およびカプセル化解除用のプラグイン、エンコードおよびデコード用のプラグインなどを含むモジュール内。同時に、デジタルオーディオやビデオを記録、変換し、ストリーミング用のオープンソースコンピュータープログラムに変換することもできます。LGPLまたはGPLライセンスを採用します。オーディオとビデオの記録、変換、ストリーミングのための完全なソリューションを提供します。

ffmpeg公式サイト

1.FFmpegをダウンロードしてインストールします

  1. ダウンロード (カスタム バージョン: http://www.ffmpeg.org/releases/)

wget http://www.ffmpeg.org/releases/ffmpeg-5.1.tar.gz

  1. 解凍する

tar -zxvf ffmpeg-5.1.tar.gz

  1. コンパイルしてインストール(時間がかかります)
    /home/ffmpeg は独自に指定したインストールディレクトリです

cd ffmpeg-5.1
./configure --prefix=/home/ffmpeg
make && make install

  1. 環境変数を構成する (どこでも簡単に使用できます)

vi /etc/profile

PATH の最後に環境変数を追加します。

export PATH=$PATH:$JAVA_HOME/bin:/home/ffmpeg/bin

ソース/ect/プロファイル

ここに画像の説明を挿入

  1. インストールが正しいことを確認する

ffmpeg -バージョン
ここに画像の説明を挿入

2、nginxをインストールする

1. 依存関係をインストールする

yum -y インストール gcc zlib zlib-devel pcre-devel openssl openssl-devel

  1. ダウンロード、コンパイル、インストール
# 下载  
 wget http://nginx.org/download/nginx-1.21.5.tar.gz
 
# 解压缩
tar -zxvf nginx-1.21.5.tar.gz
cd nginx-1.21.5/
 
# 执行配置并加载ssl模块
./configure --prefix=/usr/local/nginx --with-http_ssl_module
 
# 编译安装(默认安装在/usr/local/nginx)
make
make install
  1. 起動する
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
 
 
# 进入:/usr/local/nginx/sbin
1 启动 ./nginx  
2 停止 ./nginx -s stop
3 重启 ./nginx -s reload

4. nginx を設定します (外部ネットワーク サーバーのポート番号を開き、nginx とファイアウォールを再起動することを忘れないでください)。

   	server {
    
    
		listen       82;
        location / {
    
    
            types{
    
    
                application/vnd.apple.mpegurl m3u8;
                video/mp2t ts;
            }

            root /home/ffmpeg/video/; #root后的路径改为转码后的视频文件夹路径
            add_header Cache-Control no-cache;
            add_header Access-Control-Allow-Origin *;
        }
	}

3. トランスコードを開始する

nohup ffmpeg -i rtsp ストリーム アドレスに置き換えます-c copy -y /home/ffmpeg/video/AK_PHAROS1_000003/1ZNBJ4800C006B/video.m3u8 2>/dev/null 2>&1 &

注:
最初の太字の場所は、通常の再生を保証するために RTSP アドレスに変更されます (vlc ツールを使用してテストできます)。2 番目の場所は、
トランスコード後にビデオ ストリームが保存される場所のパスです
。 PS: このコマンドはバックグラウンドで実行されます。フォアグラウンドにしたい場合は、先頭の nohup と最後の 2>/dev/null を削除するために実行します 2>&1 &

ここに画像の説明を挿入
ここに画像の説明を挿入

トランスコードが成功した後のビデオは nginx 経由でアクセスされ、上記のメソッドを実行した後の結果の再生アドレスは次のとおりです。

http://IP アドレス:82/AK_PHAROS1_000003/1ZNBJ4800C006B/video.m3u8

VLC でテストします。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_35222232/article/details/132044524