使用 ffmpeg 从 RTSP 流录制视频和音频数据

Posted

技术标签:

【中文标题】使用 ffmpeg 从 RTSP 流录制视频和音频数据【英文标题】:Recording video & audio data from RTSP stream using ffmpeg 【发布时间】:2012-03-10 07:13:01 【问题描述】:

我正在尝试使用 FFMPEG 录制视频数据。我使用了以下命令

ffmpeg -i 'rtsp://..' -vcodec copy -acodec copy -t 3600 -y file.mp4

我收到以下错误

Seems stream 0 codec frame rate differs from container frame rate: 180000.00

(180000/1) -> 90000.00 (180000/2)
Input #0, rtsp, from 'rtsp://10.17.8.138:554/h264.sdp?res=half&x0=0&y0=0&x1=1280&   

y1=1024&
qp=20&doublescan=0&bitrate=65535&ssn=20':
Duration: N/A, bitrate: N/A
Stream #0.0: Video: h264, yuv420p, 640x512, 90k tbr, 90k tbn, 180k tbc
Output #0, mp4, to 'file.mp4':
Stream #0.0: Video: 0x0000, yuv420p, 640x512, q=2-31, 90k tbn, 90k tbc
Stream mapping:
Stream #0.0 -> #0.0
Press [q] to stop encoding
[NULL @ 0x84c16d0]error, non monotone timestamps 50 >= 50
av_interleaved_write_frame(): Error while opening file

任何机构可以帮助我吗?

【问题讨论】:

【参考方案1】:

粘贴输出的这些部分:

Input #0, rtsp, from 'rtsp://10.17.8.138:554/h264.sdp
[...]
Output #0, mp4, to 'file.mp4':
Stream #0.0: Video: 0x0000, yuv420p, 640x512, q=2-31, 90k tbn, 90k tbc

告诉我,FFmpeg 安装不知道如何编码 H.264 视频。这可能是因为没有内置 libx264 支持。运行:

ffmpeg -codecs | grep libx264

查看是否存在支持。如果没有,请使用 libx264 支持重建并重试。

【讨论】:

以上是关于使用 ffmpeg 从 RTSP 流录制视频和音频数据的主要内容,如果未能解决你的问题,请参考以下文章

如何用ffmpeg将rtsp视频流录制成mp4文件?

FFMPEG:RTSP 流冻结,但 FFMPEG 继续录制

RTSP 媒体协议流的录制方案及其覆盖策略详解

使用ffmpeg命令推送rtsp流,不包含SPS和PPS帧

ffmpeg接收rtsp流问题

ffmpeg,rtmpdump和nginx rtmp实现录屏,直播和录制