首先应该感谢http://hi.baidu.com/newdreamllc/item/ee6beb0e2bbbcc8f02ce1ba6(天下文章一大抄),也不知道他是抄过来的还是自己写的,他给了我启发,当然不是抄的启发,而是里面内容确实让我完成了ffmpeg对rtmp直播流截图的处理,之前都有试过用opencv写个程序截图,但是写完发现,在使用载入视频流函数的时间比较长,这个也就容忍了,竟然在输入错误的流地址的时候,程序竟然死了,对,就是死掉了!!!我这样对程序严谨的人,怎么能允许这个错误呢,果断抛弃。废话不多说,先看我的一系列参数:
ffmpeg.exe -probesize 32768 -i "rtmp://{ip}/live/1 live=1" -y -t 0.001 -ss 1 -f image2 -r 1 c:/rtm.jpeg
可能,也许,差不多后面的参数少的话就出现什么流找不到啊,什么的,下面来分析一下参数
-probesize 32768 :没有查到这个参数什么意思,不过字面意思是探针的大小,可能是内存申请32768大小的内存把
-i “rtmp。。。” :后接地址
-y :覆盖输出文件,即如果1.***文件已经存在的话,不经提示就覆盖掉了
-t 0.001 :设置纪录时间 hh:mm:ss[.xxx]格式的记录时间也支持
-ss 1 :延迟1秒后开始
-f image2 :以图片格式保存
-r 1 :帧数,此处为截取一帧
最重要的要说一下: 在-i 后的地址,要用双引号括起来,如果是rtmp直播流,双引号里面要加上live=1
如果还不行的话,估计就是ffmpeg这个sdk有问题了,可能是里面没有兼容rtmp的东西,看看第一行链接里面的东西把,希望对你们有帮助。
公司网址:www.icss.cc
中海岸建站:www.cseashore.asia