关于使用ffmpeg把rtsp转rtmp过程中丢包问题

关于使用ffmpeg编码丢包问题

平时在本地电脑window上时,丢包情况没怎么出现,到了Linux上的测试环境时就出现很大的丢包数,导致画面也是有很多花屏,严重时会导致转码停止。
原先的转码的ffmpeg命令如下

ffmpeg -i rtsp://192.168.1.108:554/DN0008.sdp -vcodec copy -acodec copy -f flv -y rtmp://192.168.1.108:1935/mylive/DN0008

在ffmpeg命令行中加入-preset ultrafast
该指令表示最快速编码
修改后命令

ffmpeg -i rtsp://192.168.1.108:554/DN0008.sdp -vcodec libx264 -preset ultrafast -acodec aac -f flv rtmp://192.168.1.108:1935/mylive/DN0008

相关指令

·  -preset ultrafast:最快的编码方式
·  -preset superfast:超级快速的编码方式
·  -preset veryfast:非常快速的编码方式
·  -preset faster:稍微快速的编码方式
·  -preset fast:快速的编码方式
·  -preset medium:折中的编码方式
·  -preset slow:慢的编码方式
·  -preset slower:更慢的编码方式
·  -preset veryslow:非常慢的编码方式
·  -preset placebo:最慢的编码方式

如果转码过程中出现这个错误
The encoder ‘aac’ is experimental but experimental codecs are not enabled, add ‘-strict -2’ if you want to use it.
这个错误在本地时也没出现,但是在Linux上却出现了
则在原先ffmpeg命令行中加入 -strict -2
加入后完整的命令

ffmpeg -i rtsp://192.168.1.108:554/DN0008.sdp -vcodec libx264 -preset ultrafast -acodec aac -f flv -strict -2 rtmp://192.168.1.108:1935/mylive/DN0008

相关命令的解释
-acodec aac 指定音频使用 aac 编码 -vcodec h264 指定视频使用 h264 编码
转换视频格式
ffmpeng -i source.mp4 -c:v libx264 -crf 24 destination.flv
-crf 是控制转码后视频的质量,质量越高,文件也就越大,范围是 0 到 51。0 表示高清无损;23 是默认值,51最小。建议的值范围是 18 到 28。而值 18 是视觉上看起来无损或接近无损的。
ffmpeg -i 视频源地址 -vf scale=853:480 -acodec aac -vcodec h264 视频输出地址(如:out.mp4),scale 表示缩放。

你可能感兴趣的:(工作bug,ffmpeg,linux)