录制RTSP音频流G.726,而无需进行代码转换

时间:2018-12-17 14:16:54

标签: c++ ffmpeg gstreamer rtsp live555

我通过视频H264和音频G.726从IP摄像机(通过rtsp)接收实时流。我需要将流存储在文件中(最好是MP4),而无需进行代码转换。录制了视频,但是ffmpeg似乎无法将G.726或mp4都写到我尝试过的其他容器中,例如avi,mkv,ogg等。

  

ffmpeg -i rtsp:... -vcodec复制-acodec复制test.mp4

这是音频流信息:

  

流#0:1:音频:adpcm_g726le,8000 Hz,单声道,s16、16 kb / s

错误:

  

在流#0中找不到编解码器adpcm_g726le的标签,找不到编解码器   目前在容器中受支持

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

是否有可能在不进行转码的情况下录制G.726?如果有任何可以执行此操作的C / C ++库,请指向我。

更新。 Gstreamer for mkv的解决方案:

  

gst-launch-1.0 -e rtspsrc location = rtsp:... name = rtspsrc! rtph264depay! h264parse! matroskamux名称= mux! filesink location =“ test.mkv” rtspsrc。 ! rtpg726depay!多路复用器。

1 个答案:

答案 0 :(得分:0)

FFmpeg可以将G726的LE变体混入两个仅包含音频的容器中,而无需计算原始转储。

星期日AU

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

Apple IFF

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