ffmpeg 服务器部署失败排查记录

本地开发环境成功得rstp部署推送srs服务器推送成功 但是部署在linux服务器下得时候失败了 记录一下排查流程步骤 本人流媒体ffmpeg 0基础新学 记录下备忘

D:/ffmpeg-20200315-c467328-win64-static/bin/ffmpeg   -rtsp_transport tcp -i rtsp:///[username]:[password]@[ip]/h264/ch1/main/av_stream -f flv -r 25 -g 5 -vcodec h264 -b:v 200k -s 640x360 -tune  -zerolatency  -an rtmp://[ip]:[port]/live/compressed_push333_7

具体流程

摄像头为海康威视摄像头,在window环境下开发,在window下开启了centos7虚拟机 并在虚拟机上搭建srs流媒体服务器,开发调试完成后准备在srs所在虚拟机上进行部署
部署后发现ffmpeg拉流日志正常 推流出现段错误

暂时排除问题

ffmpeg推流语句应该没有问题 在windows环境下实验过是通得
网络问题 摄像头 推流 srs 程序 回调 网络均能ping通
window宿主计算机上推流20+没有问题 在推流时开启虚拟机监控没有发现异常 所以应该不是内存溢出

尝试定位问题

普通压缩命令测试

 ffmpeg -i lyb.Ep22.2015.HD720P.X264.AAC.Mandarin.CHS.Mp4Ba.mp4  -acodec copy -vcodec copy -f flv test.flv 

结果成功

ffmpeg version 3.1 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-39)
  configuration: --prefix=/usr/local/ffmpeg --enable-gpl --enable-version3 --enable-nonfree --enable-shared --enable-zlib --enable-bzlib --enable-libmp3lame --enable-libx264 --enable-pic --enable-libfaac
  libavutil      55. 27.100 / 55. 27.100
  libavcodec     57. 48.101 / 57. 48.101
  libavformat    57. 40.101 / 57. 40.101
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 46.102 /  6. 46.102
  libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  1.100 /  2.  1.100
  libpostproc    54.  0.100 / 54.  0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'lyb.Ep22.2015.HD720P.X264.AAC.Mandarin.CHS.Mp4Ba.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 1
    compatible_brands: isomavc1
    creation_time   : 2015-09-29 17:09:29
  Duration: 00:44:30.04, start: 0.000000, bitrate: 2697 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x714 [SAR 1:1 DAR 640:357], 2565 kb/s, 25 fps, 25 tbr, 25k tbn, 50 tbc (default)
    Metadata:
      creation_time   : 2015-09-29 17:09:29
      handler_name    : 264:fps=25.0@GPAC0.5.1-DEV-rev4929
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      creation_time   : 2015-09-29 10:13:23
      handler_name    : GPAC ISO Audio Handler
[flv @ 0x1ae6640] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
    Last message repeated 1 times
Output #0, flv, to 'test.flv':
  Metadata:
    major_brand     : isom
    minor_version   : 1
    compatible_brands: isomavc1
    encoder         : Lavf57.40.101
    Stream #0:0(und): Video: h264 ([7][0][0][0] / 0x0007), yuv420p, 1280x714 [SAR 1:1 DAR 640:357], q=2-31, 2565 kb/s, 25 fps, 25 tbr, 1k tbn, 25k tbc (default)
    Metadata:
      creation_time   : 2015-09-29 17:09:29
      handler_name    : 264:fps=25.0@GPAC0.5.1-DEV-rev4929
    Stream #0:1(eng): Audio: aac (LC) ([10][0][0][0] / 0x000A), 44100 Hz, stereo, 128 kb/s (default)
    Metadata:
      creation_time   : 2015-09-29 10:13:23
      handler_name    : GPAC ISO Audio Handler
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame=66751 fps=9010 q=-1.0 Lsize=  881037kB time=00:44:30.03 bitrate=2703.1kbits/s speed= 360x      
video:836104kB audio:41719kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.366043%

将输出端改为srs服务器

ffmpeg -i lyb.Ep22.2015.HD720P.X264.AAC.Mandarin.CHS.Mp4Ba.mp4  -acodec copy -vcodec copy -f flv rtmp://[srsip]:[srsport]/live/compressed_linux

成功 排除输出端问题

输入端采取备用流

ffmpeg  -i rtsp://[username]:[password]@[ip]/mpeg4/ch1/sub/av_stream -acodec copy -vcodec copy  -f flv -r 25 -g 5  -b:v 400k -s 640x360 -tune  -zerolatency  -an   -f flv rtmp://[srsip]:[srsport]/live/compressed_linux

推送成功
推送流同为rtsp流 区别在于编码格式
mpeg4 与 h264 得区别
失败原因应该为这个

暂时用替换流得方案解决问题
h264待解决
服务器安装x264版本为
x264-snapshot-20120718-2245-stable.tar.bz2
ffmpeg安装报错:WARNING: using libx264 without pkg-config
采取解决方案为:
因为yum安装x264时,没有自动给我们加入环境变量,执行:export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH解决

ffmpeg -rtsp_transport tcp -i rtsp://[username]:[password]@[ip]:[port]/h264/ch1/main/av_stream -vcodec libx264 -pix_fmt yuvj420p  -f flv  rtmp://[srsip]:[srsport]/live/compressed_linux

源推流语句失败

尝试静态文件修改编码推送

ffmpeg -i lyb.Ep22.2015.HD720P.X264.AAC.Mandarin.CHS.Mp4Ba.mp4   -vcodec libx264 -f flv rtmp://[srsip]:[srsport]/live/compressed_linux

推流失败
基本确定为编码器问题

在网上搜了半天
尝试性执行

ffmpeg -re  -rtsp_transport tcp  -i rtsp://[username]:[password]@[ip]:[port]/h264/ch1/main/av_stream   -f flv  rtmp://[srsip]:[srsport]/live/compressed_linux

竟然成功了
就这样吧 爱咋咋

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值