跟风入了随身wifi,虽然只有1.2主频,512内存和4G存储,性能弱鸡,但9块9包邮的价格,立马让它香了起来。
实测,随身wifi的性能用ffmpeg进行rtmp推流毫无压力,cpu和内存占用都极低(毕竟不解码,本质上就是个文件读取操作),前提是使用了正确的命令参数。
网上常见的推流命令是【注意,这是不可用的】:
ffmpeg -re -i 视频地址 -vcodec libx264 -acodec aac -strict -2 -f flv "你的推流地址"
此命令实际上是要把视频文件转码为H.264格式输出,等于是一边转码一边推流,以随身wifi的身板,根本无法承受。cpu占用直接拉满,温度飙升,播放非常卡顿,完全没法用。
尽管可以对命令行参数进行调整,设置压缩质量和画质等,但我进行了各种尝试,对于随身wifi的性能来说,哪怕是画质降到惨不忍睹,或是设置极低的播放帧数,依然不能完全避免卡顿,效果很差。
所以,想用随身wifi进行rtmp推流,必须要使用下面的命令行:
ffmpeg -re -i 视频地址 -c copy -f flv "你的推流地址"
此命令行强制ffmpeg不转码,直接输出视频。这样才可以顺畅推流。
注意,采用此种方式,视频必须为H.264格式,否则会出错。
如果视频不是H.264格式,需要先自行用软件转成H.264格式,然后再拿来用。
想一想,这才是正确的打开方式。
没有必要每次使用都要进行耗电发热的转码,一次转完多次复用才是正确答案。
再就是文字水印问题,你可能需要播放时,在画面上显示视频名。
但采用不转码输出的方式,网上流传的加水印方式就会无效。
因为ffmpeg需要一边转码,才能一边把水印加进去。
所以,如有加水印的需求,还是应该先用视频编辑软件把水印加进去并转为H.264格式,而后再进行推流。