参考博客

http://blog.chinaunix.net/uid-11344913-id-4665455.html

在osx系统下通过ffmpeg查看设备

ffmpeg -f avfoundation -list_devices true -i ""

显示结果如下:

SingerdeMacBook-Pro:~ Singer$ ffmpeg -f avfoundation -list_devices true -i ""
ffmpeg version 3.0 Copyright (c) 2000-2016 the FFmpeg developers
built with Apple LLVM version 7.0.2 (clang-700.1.81)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.0 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libxvid --enable-vda
libavutil 55. 17.103 / 55. 17.103
libavcodec 57. 24.102 / 57. 24.102
libavformat 57. 25.100 / 57. 25.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 31.100 / 6. 31.100
libavresample 3. 0. 0 / 3. 0. 0
libswscale 4. 0.100 / 4. 0.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100
[AVFoundation input device @ 0x7f9a2bc1b6e0] AVFoundation video devices:
[AVFoundation input device @ 0x7f9a2bc1b6e0] [0] FaceTime HD Camera
[AVFoundation input device @ 0x7f9a2bc1b6e0] [1] Capture screen 0
[AVFoundation input device @ 0x7f9a2bc1b6e0] AVFoundation audio devices:
[AVFoundation input device @ 0x7f9a2bc1b6e0] [0] Built-in Microphone
: Input/output error

从上面我们可以看到设备如下:

AVFoundation video devices:
[0] FaceTime HD Camera
[1] Capture screen 0
AVFoundation audio devices:
[0] Built-in Microphone

如果希望将桌面录制或者分享,可以使用命令行如下:

ffmpeg -f avfoundation -i "1" -vcodec libx264 -preset ultrafast -acodec libfaac -f flv rtmp://192.168.1.105:1935/live1/room1

如果需要桌面+麦克风,比如一般做远程教育分享ppt或者桌面,有音频讲解 命令行如下:

ffmpeg -f avfoundation -i "1:0" -vcodec libx264 -preset ultrafast -acodec libmp3lame -ar 44100 -ac 1 -f flv rtmp://192.168.1.105:1935/live1/room1

如果需要桌面+麦克风,并且还要摄像头拍摄到自己,比如一般用于互动主播,游戏主播,命令行如下

ffmpeg -f avfoundation -framerate 30 -i "1:0" \
-f avfoundation -framerate 30 -video_size 640x480 -i "0" \
-c:v libx264 -preset ultrafast \
-filter_complex 'overlay=main_w-overlay_w-10:main_h-overlay_h-10' -acodec libmp3lame -ar 44100 -ac 1 -f flv rtmp://192.168.1.105:1935/live1/room1

然后你就可以用过支持rtmp协议的播放软件(例如VCL播放器)测试观看了

最终效果

目前用命令录屏推流 我测试的时候遇到一点问题,以上几个命令 在推了一段时间后会报一个错

av_interleaved_write_frame(): Broken pipe

我也刚开始接触ffmpeg,不知道怎么回事,如果有知道的大神,还请在评论中回复,指点下~。

服务器用的是nginx的rtmp模块搭建的,不知道是否还需要做额外配置)谢谢

ffmpeg -f avfoundation -framerate 30 -i "1:0" \
> -f avfoundation -framerate 30 -video_size 640x480 -i "0" \
> -c:v libx264 -preset ultrafast \
> -filter_complex 'overlay=main_w-overlay_w-10:main_h-overlay_h-10' -acodec libmp3lame -ar 44100 -ac 1 -f flv rtmp://192.168.1.105:1935/live1/room1
ffmpeg version 3.0 Copyright (c) 2000-2016 the FFmpeg developers
built with Apple LLVM version 7.0.2 (clang-700.1.81)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.0 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libxvid --enable-vda
libavutil 55. 17.103 / 55. 17.103
libavcodec 57. 24.102 / 57. 24.102
libavformat 57. 25.100 / 57. 25.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 31.100 / 6. 31.100
libavresample 3. 0. 0 / 3. 0. 0
libswscale 4. 0.100 / 4. 0.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100
[avfoundation @ 0x7fc549000400] Selected pixel format (yuv420p) is not supported by the input device.
[avfoundation @ 0x7fc549000400] Supported pixel formats:
[avfoundation @ 0x7fc549000400] uyvy422
[avfoundation @ 0x7fc549000400] yuyv422
[avfoundation @ 0x7fc549000400] nv12
[avfoundation @ 0x7fc549000400] 0rgb
[avfoundation @ 0x7fc549000400] bgr0
[avfoundation @ 0x7fc549000400] Overriding selected pixel format to use uyvy422 instead.
[avfoundation @ 0x7fc549000400] Stream #0: not enough frames to estimate rate; consider increasing probesize
Input #0, avfoundation, from '1:0':
Duration: N/A, start: 21897.641167, bitrate: 2822 kb/s
Stream #0:0: Video: rawvideo (UYVY / 0x59565955), uyvy422, 2880x1800, 1000k tbr, 1000k tbn, 1000k tbc
Stream #0:1: Audio: pcm_f32le, 44100 Hz, stereo, flt, 2822 kb/s
[avfoundation @ 0x7fc54a086800] Selected pixel format (yuv420p) is not supported by the input device.
[avfoundation @ 0x7fc54a086800] Supported pixel formats:
[avfoundation @ 0x7fc54a086800] uyvy422
[avfoundation @ 0x7fc54a086800] yuyv422
[avfoundation @ 0x7fc54a086800] nv12
[avfoundation @ 0x7fc54a086800] 0rgb
[avfoundation @ 0x7fc54a086800] bgr0
[avfoundation @ 0x7fc54a086800] Overriding selected pixel format to use uyvy422 instead.
Input #1, avfoundation, from '0':
Duration: N/A, start: 21898.372233, bitrate: N/A
Stream #1:0: Video: rawvideo (UYVY / 0x59565955), uyvy422, 640x480, 29.97 tbr, 1000k tbn, 1000k tbc
[libx264 @ 0x7fc54995de00] MB rate (20340000000) > level limit (2073600)
[libx264 @ 0x7fc54995de00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2
[libx264 @ 0x7fc54995de00] profile Constrained Baseline, level 5.2
[libx264 @ 0x7fc54995de00] 264 - core 148 r2601 a0cd7d3 - H.264/MPEG-4 AVC codec - Copyleft 2003-2015 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
Output #0, flv, to 'rtmp://192.168.1.105:1935/live1/room1':
Metadata:
encoder : Lavf57.25.100
Stream #0:0: Video: h264 (libx264) ([7][0][0][0] / 0x0007), yuv420p, 2880x1800, q=-1--1, 1000k fps, 1k tbn, 1000k tbc (default)
Metadata:
encoder : Lavc57.24.102 libx264
Side data:
unknown side data type 10 (24 bytes)
Stream #0:1: Audio: mp3 (libmp3lame) ([2][0][0][0] / 0x0002), 44100 Hz, mono, fltp
Metadata:
encoder : Lavc57.24.102 libmp3lame
Stream mapping:
Stream #0:0 (rawvideo) -> overlay:main (graph 0)
Stream #1:0 (rawvideo) -> overlay:overlay (graph 0)
overlay (graph 0) -> Stream #0:0 (libx264)
Stream #0:1 -> #0:1 (pcm_f32le (native) -> mp3 (libmp3lame))
Press [q] to stop, [?] for help
[avfoundation @ 0x7fc54a086800] Thread message queue blocking; consider raising the thread_queue_size option (current value: 8)
frame= 1 fps=0.0 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= [avfoundation @ 0x7fc549000400] Thread message queue blocking; consider raising the thread_queue_size option (current value: 8)
frame= 5 fps=5.0 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= frame= 6 fps=4.0 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= frame= 9 fps=4.5 q=0.0 size= 0kB time=00:00:01.11 bitrate= 2.7kbits/sframe= 14 fps=5.6 q=19.0 size= 676kB time=00:00:01.86 bitrate=2964.4kbits/frame= 16 fps=5.3 q=17.0 size= 945kB time=00:00:01.86 bitrate=4143.2kbits/frame= 20 fps=5.7 q=19.0 size= 1659kB time=00:00:01.92 bitrate=7074.0kbits/frame= 26 fps=6.4 q=19.0 size= 2386kB time=00:00:02.69 bitrate=7257.9kbits/frame= 29 fps=6.4 q=21.0 size= 2718kB time=00:00:03.41 bitrate=6520.5kbits/frame= 32 fps=6.3 q=18.0 size= 2907kB time=00:00:03.41 bitrate=6973.6kbits/frame= 38 fps=6.8 q=17.0 size= 3503kB time=00:00:04.16 bitrate=6891.4kbits/frame= 41 fps=6.8 q=20.0 size= 3874kB time=00:00:04.95 bitrate=6399.7kbits/frame= 43 fps=6.5 q=18.0 size= 4013kB time=00:00:04.95 bitrate=6629.3kbits/frame= 49 fps=6.9 q=18.0 size= 4502kB time=00:00:06.25 bitrate=5894.7kbits/frame= 53 fps=7.0 q=21.0 size= 5001kB time=00:00:06.46 bitrate=6332.6kbits/frame= 57 fps=7.1 q=18.0 size= 5438kB time=00:00:07.07 bitrate=6296.3kbits/frame= 64 fps=7.5 q=18.0 size= 6019kB time=00:00:07.82 bitrate=6301.4kbits/frame= 65 fps=7.2 q=22.0 size= 6135kB time=00:00:08.00 bitrate=6281.8kbits/frame= 69 fps=7.2 q=20.0 size= 6386kB time=00:00:08.63 bitrate=6061.0kbits/frame= 74 fps=7.3 q=19.0 size= 6822kB time=00:00:08.79 bitrate=6351.1kbits/frame= 75 fps=7.1 q=23.0 size= 6877kB time=00:00:08.79 bitrate=6402.7kbits/frame= 80 fps=7.2 q=18.0 size= 7259kB time=00:00:09.54 bitrate=6228.4kbits/frame= 86 fps=7.4 q=18.0 size= 7776kB time=00:00:10.25 bitrate=6213.4kbits/frame= 87 fps=7.2 q=22.0 size= 7843kB time=00:00:10.95 bitrate=5867.4kbits/frame= 92 fps=7.3 q=18.0 size= 8121kB time=00:00:11.01 bitrate=6042.1kbits/frame= 98 fps=7.5 q=18.0 size= 8698kB time=00:00:11.78 bitrate=6047.1kbits/frame= 100 fps=7.3 q=17.0 size= 8898kB time=00:00:12.52 bitrate=5817.7kbits/frame= 102 fps=7.2 q=20.0 size= 9030kB time=00:00:13.30 bitrate=5561.6kbits/frame= 106 fps=7.2 q=20.0 size= 9411kB time=00:00:13.87 bitrate=5555.8kbits/frame= 108 fps=7.1 q=20.0 size= 9557kB time=00:00:14.10 bitrate=5551.7kbits/frame= 111 fps=7.1 q=20.0 size= 9877kB time=00:00:14.65 bitrate=5522.7kbits/frame= 116 fps=7.2 q=19.0 size= 10305kB time=00:00:15.40 bitrate=5481.7kbits/frame= 119 fps=7.1 q=22.0 size= 10536kB time=00:00:15.43 bitrate=5591.1kbits/frame= 122 fps=7.1 q=19.0 size= 10822kB time=00:00:15.61 bitrate=5677.1kbits/frame= 129 fps=7.3 q=21.0 size= 11436kB time=00:00:16.36 bitrate=5725.4kbits/frame= 133 fps=7.3 q=21.0 size= 11816kB time=00:00:17.14 bitrate=5645.2kbits/frame= 136 fps=7.3 q=18.0 size= 12159kB time=00:00:17.90 bitrate=5563.2kbits/frame= 141 fps=7.3 q=17.0 size= 12530kB time=00:00:18.64 bitrate=5506.2kbits/frame= 144 fps=7.3 q=21.0 size= 12835kB time=00:00:18.66 bitrate=5632.2kbits/frame= 146 fps=7.2 q=17.0 size= 12984kB time=00:00:19.13 bitrate=5558.5kbits/frame= 153 fps=7.4 q=18.0 size= 13696kB time=00:00:19.42 bitrate=5777.3kbits/frame= 156 fps=7.3 q=21.0 size= 14008kB time=00:00:19.92 bitrate=5760.2kbits/frame= 160 fps=7.4 q=18.0 size= 14397kB time=00:00:20.67 bitrate=5705.4kbits/frame= 167 fps=7.5 q=16.0 size= 15053kB time=00:00:22.23 bitrate=5545.9kbits/frame= 169 fps=7.4 q=18.0 size= 15205kB time=00:00:22.23 bitrate=5601.6kbits/frame= 172 fps=7.4 q=17.0 size= 15421kB time=00:00:22.40 bitrate=5639.0kbits/frame= 178 fps=7.5 q=20.0 size= 15991kB time=00:00:23.01 bitrate=5692.4kbits/frame= 180 fps=7.4 q=17.0 size= 16226kB time=00:00:23.01 bitrate=5776.1kbits/frame= 184 fps=7.4 q=16.0 size= 16612kB time=00:00:23.28 bitrate=5844.9kbits/frame= 190 fps=7.5 q=20.0 size= 17139kB time=00:00:24.04 bitrate=5839.8kbits/frame= 192 fps=7.4 q=17.0 size= 17348kB time=00:00:24.53 bitrate=5792.2kbits/frame= 195 fps=7.4 q=16.0 size= 17554kB time=00:00:24.81 bitrate=5794.9kbits/frame= 199 fps=7.4 q=18.0 size= 17979kB time=00:00:25.58 bitrate=5756.1kbits/frame= 202 fps=7.4 q=16.0 size= 18201kB time=00:00:26.10 bitrate=5712.6kbits/frame= 205 fps=7.4 q=17.0 size= 18445kB time=00:00:26.79 bitrate=5639.9kbits/frame= 209 fps=7.4 q=18.0 size= 18808kB time=00:00:27.56 bitrate=5589.6kbits/frame= 212 fps=7.3 q=16.0 size= 19082kB time=00:00:27.56 bitrate=5671.0kbits/frame= 215 fps=7.3 q=16.0 size= 19413kB time=00:00:27.93 bitrate=5694.0kbits/frame= 219 fps=7.3 q=18.0 size= 19873kB time=00:00:28.70 bitrate=5672.1kbits/frame= 221 fps=7.3 q=16.0 size= 20000kB time=00:00:29.16 bitrate=5616.8kbits/frame= 225 fps=7.3 q=17.0 size= 20443kB time=00:00:29.87 bitrate=5606.3kbits/frame= 229 fps=7.3 q=17.0 size= 20875kB time=00:00:30.23 bitrate=5656.0kbits/frame= 232 fps=7.3 q=17.0 size= 21093kB time=00:00:30.63 bitrate=5641.1kbits/frame= 237 fps=7.3 q=17.0 size= 21625kB time=00:00:30.75 bitrate=5760.9kbits/frame= 241 fps=7.3 q=16.0 size= 22111kB time=00:00:31.52 bitrate=5746.1kbits/frame= 243 fps=7.3 q=18.0 size= 22327kB time=00:00:32.17 bitrate=5684.3kbits/frame= 248 fps=7.3 q=15.0 size= 22659kB time=00:00:32.94 bitrate=5633.7kbits/frame= 251 fps=7.3 q=21.0 size= 23012kB time=00:00:33.72 bitrate=5590.6kbits/frame= 254 fps=7.3 q=21.0 size= 23227kB time=00:00:33.72 bitrate=5642.7kbits/frame= 260 fps=7.3 q=21.0 size= 23630kB time=00:00:34.03 bitrate=5687.9kbits/frame= 263 fps=7.3 q=20.0 size= 23967kB time=00:00:34.61 bitrate=5672.3kbits/av_interleaved_write_frame(): Broken pipe
Last message repeated 1 times
[flv @ 0x7fc54995be00] Failed to update header with correct duration.
[flv @ 0x7fc54995be00] Failed to update header with correct filesize.
Error writing trailer of rtmp://192.168.1.105:1935/live1/room1: Broken pipeframe= 264 fps=7.3 q=18.0 Lsize= 25180kB time=00:00:34.80 bitrate=5927.3kbits/s speed=0.967x
video:25152kB audio:20kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.027315%
[libx264 @ 0x7fc54995de00] frame I:2 Avg QP:17.00 size:952357
[libx264 @ 0x7fc54995de00] frame P:262 Avg QP:18.57 size: 94027
[libx264 @ 0x7fc54995de00] mb I I16..4: 100.0% 0.0% 0.0%
[libx264 @ 0x7fc54995de00] mb P I16..4: 1.4% 0.0% 0.0% P16..4: 10.8% 0.0% 0.0% 0.0% 0.0% skip:87.8%
[libx264 @ 0x7fc54995de00] coded y,uvDC,uvAC intra: 68.5% 67.1% 65.3% inter: 7.5% 9.0% 7.1%
[libx264 @ 0x7fc54995de00] i16 v,h,dc,p: 33% 27% 27% 12%
[libx264 @ 0x7fc54995de00] i8c dc,h,v,p: 58% 20% 16% 5%
[libx264 @ 0x7fc54995de00] kb/s:5865.17
Conversion failed!

最新文章

  1. thinkphp框架中“关联操作”的完整定义详解
  2. mysql 批量更新与批量更新多条记录的不同值实现方法
  3. git曲线
  4. 查看javadoc
  5. 瀑布流布局--jQuery写法
  6. 滚动视图和页面控制UIScollView,UIpageControlDemo
  7. Spark之路 --- Windows Scala 开发环境安装配置
  8. signal函数、sigaction函数及信号集(sigemptyset,sigaddset)操作函数
  9. 关于ServletConfig的小结
  10. 在uboot上创建菜单
  11. Visual Studio跨平台开发实战(3) - Xamarin iOS多页面应用程式开发
  12. 常用的Python代码段
  13. 从Java角度理解Angular之入门篇:npm, yarn, Angular CLI
  14. Android,重新出发!
  15. i春秋SRC部落携手同程SRC发布首届漏洞提交任务
  16. nginx启动常遇到的问题
  17. 前端面试题 | JS部分(附带答案)
  18. DBCC--常用跟踪标记
  19. 解决:在pom.xml处理添加testng依赖之外,需对testng进行关联
  20. (转)CentOS 7 —— /etc/rc.local 开机不执行 - 解决方法

热门文章

  1. 一个ssm综合小案例-商品订单管理-第二天
  2. amipy exampes
  3. [转载]JavaScript 的轻框架开发
  4. 关于MYSQL group by 分组按时间取最大值的实现方法
  5. 使用渐进式JPEG来提升用户体验
  6. Linux - awk 文本处理工具四
  7. flask_sqlalchemy的使用
  8. Linux中普通用户提权为超级用户
  9. 【ARTS】01_02_左耳听风-20181119~1125
  10. RESTful 个人理解总结【转】