欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

srt学习笔记七:使用265推rtmp 博客分类: ffmpeg ffmpeg 

程序员文章站 2024-03-14 16:08:40
...
概念:
视频码率:视频码率就是数据传输时单位时间传送的数据位数,一般我们用的单位是kbps即千位每秒。通俗一点的理解就是取样率,单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件
帧率:hz
FEC:前向纠错也叫前向纠错码(Forward Error Correction,简称FEC)


udp的基本粒子:
ffmpeg -re -i chrome.mp4 -f h264 udp://127.0.0.1:6666
ffplay udp://127.0.0.1:6666

######################   ffmpeg 264 265. 转视频文件 ########


https://www.jianshu.com/p/b6216d8e3df8  265的有问题参考https://superuser.com/questions/785528/how-to-generate-an-mp4-with-h-265-codec-using-ffmpeg

视频转换
ffmpeg -i chrome.mp4 -c:v libx264 -preset slow -crf 22 -x264-params keyint=123:min-keyint=20 -c:a copy chrome.mkv

ffmpeg -i chrome.mp4 -c:v libx265 -c:a copy -x265-params crf=25 output.mp4

虽然可以转视频,但是输出流就不行了
这个不行##### ffmpeg -i chrome.mp4 -c:v libx265 -c:a copy -x265-params crf=25 rtmp://127.0.0.1/live/livestream

查看 ffmepg是否支持265 :brew info ffmpeg
这样看也不行,还是要装金山的265才行    https://github.com/ksvc/FFmpeg


#########################  srs的  srt推rtmp  ######################### 

ffmpeg -re -i chrome.mp4  -vcodec copy -acodec copy  -f mpegts 'srt://127.0.0.1:10080?streamid=#!::h=live/livestream,m=publish'
ffplay -loglevel verbose  "rtmp://127.0.0.1/live/livestream live=1"  



srs的  rtmp推rtmp
ffmpeg -re -i ./chrome.mp4 -c copy -f flv rtmp://127.0.0.1/live/livestream
ffplay -loglevel verbose  "rtmp://127.0.0.1/live/livestream live=1"  




####################### 金山的ffmpeg 和pingo推流服务 #######################
这个重要,好好看
https://www.pengrl.com/p/20044/


想要这个命令好使,mac自带的是不行的
./ffmpeg -re -i ~/Desktop/chrome.mp4 -c:a copy -c:v libx265 -f flv rtmp://127.0.0.1/live/livestream

安装支持265的ffmepg:
git clone https://github.com/ksvc/FFmpeg.git
git reset --hard origin/release/3.4


./configure --enable-static --enable-pic  --disable-encoders --enable-encoder=aac --enable-encoder=libx264 --enable-gpl --enable-libx264 --enable-encoder=libx265  --enable-libx265  --disable-decoders --enable-decoder=aac --enable-decoder=h264 --enable-decoder=hevc   --disable-demuxers --enable-demuxer=aac --enable-demuxer=mov --enable-demuxer=mpegts --enable-demuxer=flv --enable-demuxer=h264 --enable-demuxer=hevc --enable-demuxer=hls   --disable-muxers --enable-muxer=h264  --enable-muxer=flv --enable-muxer=f4v  --enable-muxer=mp4  --disable-doc --extra-cflags="-fno-stack-check"

修改:libavcodec/libx264.c
把libavcodec/libx264.c中的x264_bit_depth全部替换成了大写的X264_BIT_DEPTH。
make -j8


测试
./ffmpeg -re -i ~/Desktop/chrome.mp4 -c:a copy -c:v libx265 -f flv rtmp://127.0.0.1/live/livestream
可以了,但是还是需要一个接首流的server,
nginx-rtmp-module或者pingos

##########
参考但是不用这个 https://github.com/im-pingo/nginx-rtmp-module


这么装不行
./configure --prefix=/usr/local/nginx_rtmp --add-module=/opt/hao/ffmpeg/nginx-rtmp-module/ --with-openssl=/opt/hao/ffmpeg/openssl-1.1.1g

看pingos的安装程序,需要4个nginx模块,还是装pingo吧
git clone https://github.com/pingostack/pingos
看README
./release.sh -i

运行服务 /usr/local/pingos/sbin/nginx
需要一些目录之类的自建

测试:
/opt/hao/ffmpeg/FFmpeg/ffmpeg -re -i ~/Desktop/chrome.mp4 -c:a copy -c:v libx265 -f flv rtmp://127.0.0.1/live/livestream

/opt/hao/ffmpeg/FFmpeg/ffplay -loglevel verbose  "rtmp://127.0.0.1/live/livestream live=1"



综上:
用金山的ffmpeg,支持265的推流,mac自带的不行
编译pingos作为流发服务器

ffmpeg-----265-----> pingos -------->ffplay










相关标签: ffmpeg