【问题标题】:Record RTSP audio stream G.726 without transcoding录制 RTSP 音频流 G.726 无需转码
【发布时间】:2018-12-17 14:16:53
【问题描述】:

我从 ip 摄像头(通过 rtsp)接收带有视频 H264 和音频 G.726 的实时流。我需要将流存储在文件中(最好是 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 位置=rtsp:...名称=rtspsrc ! rtph264depay! h264解析! matroskamux 名称=多路复用器!文件接收器位置="test.mkv" rtspsrc。 ! rtpg726depay !多路复用器。

【问题讨论】:

    标签: c++ ffmpeg gstreamer rtsp live555


    【解决方案1】:

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

    太阳澳大利亚

    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
    

    【讨论】:

    • 如果我想播放这些文件,可以同步流吗?还有一个问题,是否可以在录制后将文件混合到一个容器中?
    • 如果有丢弃的音频数据包,那么没有。我建议无损地对音频进行转码。
    • 在转码的情况下,哪种音频编解码器更可取?考虑到我的 CPU 和内存资源不足。
    猜你喜欢
    • 2012-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多