gpt4 book ai didi

audio - gstreamer将音频和视频编码为avi文件

转载 作者:行者123 更新时间:2023-12-02 23:35:49 28 4
gpt4 key购买 nike

我正在尝试使用gstreamer将h264视频和音频编码为单个.avi文件。
我可以将音频编码为视频:

gst-launch-1.0 appsrc name=appsrc ! deinterlace name=deinterlace ! mfxh264enc name=mfxh264enc ! avimux name=mux ! filesink name=filesink  location=test.avi

这是音频:
gst-launch-1.0 alsasrc ! queue ! audioconvert ! vorbisenc ! oggmux ! filesink location=audioTestQueue.mp3

我正在尝试根据 this示例将其与该管道结合使用:
gst-launch-1.0 appsrc name=appsrc ! deinterlace name=deinterlace ! mfxh264enc name=mfxh264enc ! queue name=queue1 ! mux. alsasrc name=alsasrc ! audioconvert name=audioconvert ! vorbisenc name=vorbisenc ! queue name=queue2 ! mux. avimux name=mux ! filesink name=filesink  location=test.avi

这将返回错误消息:“无法将queue2链接到多路复用器”。

我知道该示例正在使用the脚进行编码,但是当gstremer documentation出现在Ugly Plug-ins源中时,我宁愿不使用它
说:“请注意,MP3并非免费格式,需要考虑许可和专利问题。有关免版税(且通常质量更高)的选择,请参阅Ogg / Vorbis。”

我究竟做错了什么?

编辑:
似乎将声音设置为audiotestsrc并禁用音频编码gstreamer时,会创建.avi文件,并且可以在VLC中播放它:
gst-launch-1.0 appsrc name=appsrc1 ! deinterlace name=deinterlace1 ! mfxh264enc name=mfxh264enc1 ! queue name=queue11 ! mux. audiotestsrc name=alsasrc1 ! audioconvert name=audioconvert1 ! queue name=queue31 ! mux. avimux name=mux ! filesink name=filesink1 location=test.avi

但是尝试对alsasrc执行相同操作会使avi文件仅保存音频数据而不保存视频:
gst-launch-1.0 appsrc name=appsrc1 ! deinterlace name=deinterlace1 ! mfxh264enc name=mfxh264enc1 ! queue name=queue11 ! mux. alsasrc name=alsasrc1 ! audioconvert name=audioconvert1 ! queue name=queue31 ! mux. avimux name=mux ! filesink name=filesink1 location=/home/user/Downloads/HDTest1.avi

最佳答案

在深入研究了Gstreamer文档之后,我发现了这一点:http://trac.gateworks.com/wiki/Yocto/gstreamer/audio#Encoding
它列出了所有可用的编码器。

再次检查avimux,我发现它可以接收音频/ x-alaw格式的数据。
鉴于此,我可以使用属于gst-plugins-good的alawenc而不是lamemp3enc

所以我的最终管道是这样的:

gst-launch-1.0 alsasrc name=pulsesrc1 ! audioconvert name=audioconvert1 ! alawenc name=alawenc1 ! queue name=aud1 ! mux. appsrc name=appsrc1 ! deinterlace name=deinterlace1 ! mfxh264enc name=mfxh264enc1 ! mux. avimux name=mux ! filesink name=filesink1 location=HDTest1.avi

关于audio - gstreamer将音频和视频编码为avi文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45792036/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com