当你面对“为了什么而工作”感到迷茫时,你就干脆而果断地告诉自己“工作只是为了赚钱养活自己而已”。这就是人为何要工作的根本。by《人间值得》
最近左羊在使用ffmpeg这款框架来处理同一场地中的多个网络摄像头,将他们的媒体流从内网环境推到公网流媒体服务时遇到了如下问题,今天记录一下以备不时之需!
FFMpeg是什么能做什么:
FFMpeg(Fast Forward Mpeg)是一个多媒体框架,它能够解码、编码、转码、能够播放几乎任何格式的视频(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等),它在window、Linux、Mac都可使用。FFmpeg官网:http://ffmpeg.org/,FFmpeg可以当做一个命令行工具来使用,也可以使用它的库进行开发使用,FFmpeg都提供对应的下载地址,它如此强大而且是FFmpeg还是免费的,FFmpeg功能强大,用它可以视频信息采集、视频格式转换、视频截图、给视频加水印,从视频文件中提取音频组件,将视频转换为动画GIF,FFmpeg可以做到这一切,甚至更多。
ffmpeg处理直播流过程
ffmpeg直播命令
ffmpeg -re -rtsp_transport tcp -i rtsp:内网摄像头通道 -c:a copy -c:v libx264 -preset:v fast -tune:v zerolatency -max_delay 100 -f flv -g 5 -b 1024k rtmp:流媒体服务器域名
-re \\全局参数
-rtsp_transport tcp \\输入文件参数
-i rtsp:/内网摄像头通道 \\输入文件
-c:a copy -c:v libx264 -preset:v fast -tune:v zerolatency -max_delay 100 -f flv -g 5 -b 1024k \\输出文件参数
rtmp://流媒体服务器域 \\输出文件
#-re :就是根据文件真实的帧率来读取文件,生成实时刷新的直播流,而不是一下子按照电脑的最大性能把文件一下子读进去。*
#-rtsp_transport tcp:从rtsp服务器拉取直播流*
#-c:指定编码器
#-c copy:直接复制,不经过重新编码(这样比较快)
#-c:v:指定视频编码器*
#-c:a:指定音频编码器*
#-i:指定输入文件*
#-an:去除音频流
#-vn:去除视频流
#-preset:指定输出的视频质量,会影响文件的生成速度,有以下几个可用的值 ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow。*
#-tune
film:电影、真人类型;
animation:动画;
grain:需要保留大量的grain时用;
stillimage:静态图像编码时使用;
psnr:为提高psnr做了优化的参数;
ssim:为提高ssim做了优化的参数;
fastdecode:可以快速解码的参数;
zerolatency:零延迟,用在需要非常低的延迟的情况下,比如电视电话会议的编码。*
#-y:不经过确认,输出时直接覆盖同名文件。
# libx264:最流行的开源 H.264 编码器*
#-threads 0 處理器核心利用數量
#-aspect 16:9 4:3 視頻比例
#-pass N 1-3可选
问题1:ffmpeg在不做任何处理时直接将源码流推向公网会出现将所在场地带宽直接打死(场地带宽过小的情况下)?
文章转载自左羊公社,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。