Gstreamer:使用 AAC 编码将麦克风音频编码为 mp4

Posted

技术标签:

【中文标题】Gstreamer:使用 AAC 编码将麦克风音频编码为 mp4【英文标题】:Gstreamer: Encode microphone audio using AAC encode to mp4 【发布时间】:2021-12-12 14:36:43 【问题描述】:

想知道是否可以使用 AAC 编码到 mp4 容器中

我尝试过使用以下

gst-launch-1.0 alsasrc device="hw:0,0" ! "audio/x-raw,rate=48000,channels=2,depth=16" ! queue ! audioconvert ! avenc_aac !  qtmux ! filesink location=audio.mp4

程序运行正常,但是当我检查文件内容时,它给了我一个空内容

但是,当我使用 avimux 运行时,文件内容会给出编码和音频长度等细节

gst-launch-1.0 alsasrc device="hw:0,0" ! "audio/x-raw,rate=48000,channels=2,depth=16" ! queue ! audioconvert ! avenc_aac !  avimux ! filesink location=audio.mp4

看看有什么问题,因为我需要 AAC 编码(用于以后的 rtsp 流)并且需要使用 mp4 作为容器和 qtmux

谢谢

【问题讨论】:

【参考方案1】:

你并没有真正说出你在做什么。但很可能您缺少gst-launch-1.0-e 选项。这样一来,EOS 信号就会通过管道传播以正确完成 mp4 文件。其他文件格式没那么挑剔,但是mp4需要在所有样本都写完之后再写一个合适的索引。

【讨论】:

您好,实际上我正在尝试使用 gstreamer-launch 测试我的部分管道,然后再使用 C 进行编码。测试以寻求帮助 我认为您的描述中缺少的重要细节是您使用 CTRL-C 中止了导致 MP4 损坏的编码。但是使用-e 开关对你有用吗? 您好,您是如何结束程序的?我的意思是我们可以使用 Ctrl Z 吗? 我在***.com/questions/56329968/… 中偶然发现了你们的cmets。现在我知道该怎么做了

以上是关于Gstreamer:使用 AAC 编码将麦克风音频编码为 mp4的主要内容,如果未能解决你的问题,请参考以下文章

FFmpeg AAC编码

在 mp4 中使用 gstreamer h264 + aac 录制只会产生部分可播放的文件

Gstreamer 音频输入到 mp3

使用 ActionScript NetStream.Publish 发布 AAC 音频

Xuggler 编码和复用

使用 libavcodec 将音频编码为 aac