无需转码即可录制 RTSP 音频流 G.726

Record RTSP audio stream G.726 without transcoding

我从网络摄像机(通过 rtsp)接收视频 H264 和音频 G.726 的实时流。我需要在不转码的情况下将流存储在文件中(最好是 mp4)。视频已录制,但 ffmpeg 似乎无法将 G.726 或 mp4 写入我尝试过的其他容器,如 avi、mkv、ogg 等。

ffmpeg -i rtsp:... -vcodec copy -acodec copy test.mp4

这是音频流信息:

Stream #0:1: Audio: adpcm_g726le, 8000 Hz, mono, s16, 16 kb/s

错误:

Could not find tag for codec adpcm_g726le in stream #0, codec not currently supported in container

我也尝试了 live555 和 GStreamer,但音频流没有成功。

是否可以不转码录制G.726?如果有任何 C/C++ 库可以做到这一点,请指点我。

更新。用于 mkv 的 Gstreamer 解决方案:

gst-launch-1.0 -e rtspsrc location=rtsp:... name=rtspsrc ! rtph264depay ! h264parse ! matroskamux name=mux ! filesink location="test.mkv" rtspsrc. ! rtpg726depay ! mux.

FFmpeg 可以将 G726 的 LE 变体混合到两个纯音频容器中,不包括原始转储。

太阳 AU

ffmpeg -i rtsp:... -vcodec copy -an video.mp4 -acodec copy -vn audio.au    

苹果 IFF

ffmpeg -i rtsp:... -vcodec copy -an video.mp4 -acodec copy -vn audio.aiff