ffmpeg 命令
拉取rtsp流,并保存为mp4文件
ffmpeg -i rtsp://admin:admin123@172.xx.x.xx:8554/live0.h265 -c:v copy -c:a aac -frames 3000 out.mp4
上述命令为,拉取地址为rtsp://admin:admin123@172.xx.x.xx:8554/live0.h265的视频流,复用视频解码器,也就是不进行视频的编码,采用aac音频编码器进行编码,保存为out.mp4文件。
其中:
- -i : 指定输入源。
- -c 用于指定要使用的编解码器或进行编解码操作, -c 后面可以跟随不同的参数来指定不同的编解码器。
- -c copy: 表示将输入流中的视频和音频数据直接复制到输出文件,而不进行重新编码。这样可以快速地将输入流复制到输出文件,而无需对数据进行重新压缩或转码。使用 -c copy 能够保持原始流的质量和格式,减少处理时间和资源消耗。然而,要注意的是,如果输出文件的容器格式不支持输入流的编解码器,那么 -c copy 将无法使用,需要选择合适的编解码器来确保兼容性。总结起来,-c copy 的作用是在FFmpeg中实现流的直通复制,无需重新编码,从而提高处理速度并保持原始流的质量和格式。
- -c:v codec: 指定视频编码器。例如,-c:v libx264表示使用libx264编码器进行视频编码。
- -c:a codec: 指定音频编码器。例如,-c:a aac表示使用AAC编码器进行音频编码。
- -c:s codec: 指定字幕编码器。
- -c:v copy: 仅复制视频流至输出文件,音频需要重新编码。
- -c:a copy: 仅复制音频流至输出文件,视频需要重新编码。
- -frames: 保存到mp4文件中的帧数, 比如上述是保存3000帧。