当前位置: 首页 > 知识库问答 >
问题:

如何在gstream er中录制音频和视频

康恩
2023-03-14

我是gstreamer的新手,我想录制音频和视频并将其保存到。mp4格式,使用网络摄像头录制视频,使用麦克风录制音频这是我的管道

gst-launch-1.0-e v4l2src!队列x264enc!H264解析!队列qtmux0.alsasrc!'音频/x-raw,速率=44100,深度=24’!音频转换!音频重采样!voaacenc!aacparse!qtmux!filesink location=测试。mp4

当我执行它时,视频只录制了10秒,音频甚至没有录制,它给出了一些信息,如

警告:来自元素/GstPipeline:pipeline0/GstAlsaSrc:alsasrc0:无法足够快地录制音频其他调试信息:gstaudiobasesrc。c(866):gst\u audio\u base\u src\u create():/GstPipeline:pipeline0/GstAlsaSrc:alsasrc0:丢弃425565个样本。这很可能是因为下游无法跟上,并且消耗样品的速度太慢。

帮我度过难关提前谢谢

共有3个答案

陆翔飞
2023-03-14

我最终使用了这个(改编自网络上的随机响应,很抱歉我丢失了源代码)

<代码>raspivid-t 0-vflip-hflip-w 1920-h 1080-fps 30-比特率14000000-轮廓基线-3d sbs-intra 30-inline-flush-awb auto-exposure auto-sharpness 0-contrast-15-digitalgain 0.0-o-gst-launch-1.0-ve fdsrc num buffers=-1!视频/x-h264,宽度=1920,高度=1080,帧速率=30/1!H264解析!队列smux。视频alsasrc设备=硬件:2,0!音频/x-raw,格式=S32LE,速率=48000,通道=2!音频转换!avenc\u aac!aacparse!队列smux。audio\u 0 splitmuxsink name=smux location=视频。mp4多路复用器=mpegtsmux

请注意,这是为了捕捉立体图像,您可以删除“-3d sds”,并调整单个cam的宽度。您还可以安全地放下只对调试有用的-ve,并将音频设备hw更改为捕获卡的编号(查找卡的id)。

我更喜欢使用qtmux,但由于在raspivid制作的h264流中缺少PTS信息而失败。mpegtsmux很高兴。

到目前为止,生成的mpeg已经被破坏了一半,无法被所有播放器读取(quicktime失败,而vlc很高兴)。使用ffmpeg重新编码:ffmpeg-vcodec mpeg4-b:v 7561k-qscale:v 2-acodec aac-ac 2-async 1-严格实验/video2.mp4-线程0-i视频。mp4修复了该文件

希望这对某人有帮助。

卜存
2023-03-14

现在有了管道,它可以完美地录制音频和视频

这里是管道

gst-launch-1.0-e v4l2src!'视频/x-raw,宽度=960,高度=720,帧速率=30/1’!队列x264enc tune=零延迟!多路复用器。alsasrc!音频/x-raw,宽度=16,深度=16,速率=44100,通道=1!队列音频转换!音频重采样!voaacenc!aacparse!qtmux名称=mux!filesink location=测试。mp4同步=错误

如果管道中仍有任何错误,请告诉我

微生乐
2023-03-14

尝试使用以下管道将音频和视频录制到一个文件中。

gst-launch-1.0 -e v4l2src device="/dev/video0" ! videoconvert ! queue ! x264enc tune=zerolatency ! mux. alsasrc device="hw:2" ! queue ! audioconvert ! audioresample ! voaacenc ! aacparse ! qtmux name=mux ! filesink location=test.mp4 sync=false
 类似资料:
  • 我能够在MediaCodec和MediaMuxer的帮助下录制(编码)视频。接下来,我需要在MediaCodec和MediaMuxer的帮助下处理音频部分和带视频的mux音频。 我面临两个问题: > 如何将音频和视频数据传递给MediaMuxer(因为writeSampleData()方法一次只接受一种类型的数据)? 我提到了MediaMuxerTest,但它使用的是MediaExtractor。

  • 我试图为管道开发一个应用程序: gst-launch-1.0 rtspsrc位置=”rtsp://192.168.3.30:8554/rajvi“延迟=0 name=demux demux。!queue!rtpmp4gdepay!aacparse!avdec\u aac!audioconvert!audioresample!autoaudiosink demux。!queue!rtph264dep

  • 摄像机工作很好,所以gstreamer将只是我的音频来源。 所以我到目前为止的进展: 我已经想好了如何使用以下方法将音频从USB麦克风播放到扬声器: 所以我希望通过测试,我可以到我的Windows机器上启动VLC,并尝试用类似于rtsp://192.168.0.123的东西连接到Raspberry PI,但这是所有事情都变得模糊的地方,特别是当我甚至不能让gstreamer连接到同一个盒子上自己的

  • 我正在尝试开发一个应用程序,允许我在录制视频时绘制视频,然后将录制的视频和视频保存在一个mp4文件中供以后使用。另外,我想使用camera2库,特别是我需要我的应用程序在高于API 21的设备上运行,我总是避免使用不推荐的库。 我尝试了很多方法,包括FFmpeg,其中我放置了TextureView的覆盖层。getBitmap()(来自摄影机)和从画布获取的位图。它工作正常,但由于它的功能很慢,视频

  • 问题内容: 有谁知道我在哪里可以找到有关如何在Swift应用程序中录制音频的信息?我一直在看一些音频播放示例,但是在实现音频记录方面似乎找不到任何东西。谢谢 问题答案: 这是代码。您可以轻松地进行记录。将此代码写在上。它将按名称保存记录