ffmpegを使用してrtmpストリーミングを実現する

1. まずffmpegとffplayをダウンロードします。


http://ffmpeg.org/

公式ダウンロードリンクは次のとおりです: http://ffmpeg.org/

2. cmd は ffmpeg が存在するディレクトリに移動します


cmd は ffmpeg.exe が存在するディレクトリに移動します

3. ffmpegビューコンピュータ機器


次のステートメントを入力して、コンピューターのデバイスを一覧表示します。

ffmpeg -list_devices true -f dshow -i ダミー

ffmpeg -list_devices true -f dshow -i ダミー

私のコンピュータには USB2.0 PC CAMERA カメラと文字化けしたマイクがあることがわかります。

デバイス名が中国語の場合は文字化けが発生しますので、元のデバイス名を確認したい場合は、デバイスマネージャーで確認するか、サードパーティ製のツールを使用して確認するか、後者を推奨します。

たとえば、graphedit を使用すると、プログラムを開いた後、[チャート] -> [フィルターの挿入] に移動すると、対応するデバイス名が表示されます。

利用可能なデバイスは USB2.0 PC CAMERA とマイク (2-USB2.0 MIC) であることがわかります。

利用可能なデバイスは USB2.0 PC CAMERA とマイク (2-USB2.0 MIC) であることがわかります。

4. カメラが利用可能かどうかをテストする


cmd に次のステートメントを入力して Enter キーを押します (USB2.0 PC CAMERA はカメラの名前です)

ffplay -f dshow -i video="USB2.0 PC カメラ" または ffplay -f vfwcap -i 0

ポップアップ監視画面

再生ウィンドウが正常にポップアップ表示された場合は、デバイスが利用可能であることを意味します。それ以外の場合は、デバイスが利用できないか占有されている可能性があります。

5. カメラとマイクの情報を表示する


cmd に次のステートメントを入力してカメラ情報を照会します。

ffmpeg -list_options true -f dshow -i video="USB2.0 PC カメラ"

ffmpeg -list_options true -f dshow -i video="USB2.0 PC カメラ"

USB2.0 PC CAMERA カメラ情報

cmd に次のステートメントを入力してマイク情報を照会します。

ffmpeg -list_options true -f dshow -i audio="麦克风 (2- USB2.0 MIC)"

麦克风(2- USB2.0 MIC)信息

6、本地视频的推流


先进行简单的本地视频推流模拟,我们在ffmpeg的目录下放置一个视频,然后cmd进入该目录,把视频推流至rtmp://127.0.0.1:1935/live/123(127.0.0.1:1935为rtmp服务器地址、live为nginx配置节点、123当做密钥,推流拉流地址一样即可播放),语句如下

ffmpeg.exe -re -i demo.wmv -f flv rtmp://127.0.0.1:1935/live/123

推流中...

此时ffmpeg源源不断的把视频推流至服务器,如果地址没错,可以利用vlc或其他手段实现拉流,这里就先不解释如何拉流

7、摄像头推流


接下来正式把对摄像头进行推流,从前面我们知道摄像头名称为USB2.0 PC CAMERA,而且推流服务器ip为127.0.0.1:1935,关键字为live,所以cmd中输入以下语句:

ffmpeg -f dshow -i video="USB2.0 PC CAMERA" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://127.0.0.1:1935/live/123

摄像头推流中

和本地视频推流一样,摄像头拍到的画面会实时推流出去(当然会有延迟而且现在是没有声音的),当地址正确时,可以实现拉流

8、麦克风推流


前面介绍了摄像头画面推流,可是没有声音,这次我们把麦克风声音推流出去,cmd中输入下面语句

ffmpeg -f dshow -i audio="麦克风 (2- USB2.0 MIC)" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flvrtmp://127.0.0.1:1935/live/123

推送声音

和前面差不多,声音被推流出去了,通过vlc拉流可以听到录制的声音,但很明显不会有画面

9、摄像头&麦克风推流


终于到最激动人心的时刻了,我们这次要实现同时推流摄像头画面与声音,此时我们的语句应该如下

ffmpeg -f dshow -i video="USB2.0 PC CAMERA" -f dshow -i audio="麦克风 (2- USB2.0 MIC)" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flvrtmp://127.0.0.1:1935/live/123或者ffmpeg -f dshow -i video="USB2.0 PC CAMERA":audio="麦克风 (2- USB2.0 MIC)" -vcodec libx264 -r 25 -preset:v ultrafast -tune:v zerolatency -f flvrtmp://127.0.0.1:1935/live/123

监控画面与声音同步推流

很nice,和前面一样,画面与声音源源不断的被推流到服务器,接下来我们就应该正式的开发拉流了。

原文https://zhuanlan.zhihu.com/p/426063448

★文末名片可以免费领取音视频开发学习资料,内容包括(FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,srs)以及音视频学习路线图等等。

见下方!↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

おすすめ

転載: blog.csdn.net/yinshipin007/article/details/129385369