ffmpeg转码推流相关的命令
时间: 2023-10-08 10:08:11 浏览: 105
ffmpeg是一个非常强大的音视频处理工具,可以用来进行音视频的转码、剪辑、合并、推流等操作。以下是一些常用的ffmpeg命令,用于音视频转码和推流:
1. 将本地视频文件转为RTMP推流:
```
ffmpeg -re -i input.mp4 -c copy -f flv rtmp://SERVER_IP/STREAM_NAME
```
-re 表示以实时模式推流,-i 表示输入文件名,-c copy 表示直接复制音视频流,不进行任何编码和转换,-f flv 表示输出格式为FLV,rtmp://SERVER_IP/STREAM_NAME 表示推流到指定的RTMP服务器和流名。
2. 将本地音频文件转为RTMP推流:
```
ffmpeg -re -i input.mp3 -acodec copy -f flv rtmp://SERVER_IP/STREAM_NAME
```
-acodec copy 表示直接复制音频流,不进行任何编码和转换,其余参数与上面相同。
3. 将本地摄像头视频进行实时推流:
```
ffmpeg -f v4l2 -i /dev/video0 -c:v libx264 -preset ultrafast -tune zerolatency -f flv rtmp://SERVER_IP/STREAM_NAME
```
-f v4l2 表示使用v4l2设备作为输入源,-i /dev/video0 表示使用/dev/video0作为视频输入设备,-c:v libx264 表示使用libx264编码器进行视频编码,-preset ultrafast 表示使用ultrafast预设进行编码,-tune zerolatency 表示使用zerolatency调优,-f flv 表示输出格式为FLV,rtmp://SERVER_IP/STREAM_NAME 表示推流到指定的RTMP服务器和流名。
4. 将本地屏幕录制进行实时推流:
```
ffmpeg -f x11grab -s 1920x1080 -i :0.0 -c:v libx264 -preset ultrafast -tune zerolatency -f flv rtmp://SERVER_IP/STREAM_NAME
```
-f x11grab 表示使用X11显示系统作为输入源,-s 1920x1080 表示输入分辨率为1920x1080,-i :0.0 表示使用显示器编号为:0.0的显示设备作为输入源,-c:v libx264 表示使用libx264编码器进行视频编码,-preset ultrafast 表示使用ultrafast预设进行编码,-tune zerolatency 表示使用zerolatency调优,-f flv 表示输出格式为FLV,rtmp://SERVER_IP/STREAM_NAME 表示推流到指定的RTMP服务器和流名。
以上命令仅供参考,具体使用时需要根据实际情况进行调整和修改。
阅读全文