ffmpeg rtmp推流 视频转码

 ffmpeg -re -i 123.mp4 -vcodec libx264 -acodec aac -strict -2 -f flv rtmp://183.216.186.96:9935/live/555
首先安装ffmpeg ,命令解释
1. -re 本地帧频读数据,主要用于模拟捕获设备
2. -i 输入您要处理的视频文件路径,123.mp4是当前路径下
3. -vcodec libx264
强制使用libx264编解码方式。 如果用copy表示原始编解码数据必须被拷贝
4. -acodec acc
使用acc 编解码
5. -strict -2 -strict -2 之前是实验参数表示 aac音频编码 如果不使用aac音频编码使用使其的编码好像还需要导入第三方的音频编码库 比较麻烦 使用FFmpeg自带的aac音频编码要带上-strict -2 参数就可以了。带这个参数是为了使用aac音频编码。
6.
-f flv 强制使用flv格式
7.rtmp://183.216.186.96:9935/live/555 nginx配置的推流地址,live是应用路由,9935时监听端口,555是推流房间号,也就是推流id,会以这个id生成文件,比如这里会生成 555.flv文件

rtmp {
    server {
        listen 1935;
        chunk_size 4000;
        application live {
            live on;
        }
    }
} 
如上配置的rtmp 推流路径是 rtmp://ip:1935/live/roomId roomid是自定义的

ffmpeg 视频格式转换
# -f mp4 指定格式,-vcode指定视频编码器,-acode指定音频编码器,-y覆盖输出文件 ,强制使用codec编解码方式。 如果用copy表示原始编解码数据必须被拷贝。


ffmpeg -i $path -f mp4 -vcodec copy -acodec copy -y $dirname/$basename.mp4 >>/opt/out.log 2>&1;

#path - recorded file path (/tmp/rec/mystream-1389499351.flv) //记录文件路径
#filename - path with directory omitted (mystream-1389499351.flv)
#basename - file name with extension omitted (mystream-1389499351)
#dirname - directory path (/tmp/rec)

  

posted @ 2021-12-20 11:03  啦啦拉扎尔  阅读(606)  评论(0编辑  收藏  举报