1. まずffmpegとffplayをダウンロードします。
公式ダウンロードリンクは次のとおりです: 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)以及音视频学习路线图等等。
见下方!↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓