Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从视频中提取音频?_Python_Video_Audio_Gstreamer - Fatal编程技术网

Python 如何从视频中提取音频?

Python 如何从视频中提取音频?,python,video,audio,gstreamer,Python,Video,Audio,Gstreamer,我在ubuntu上,想将mp4视频转换成mp3音频文件,但不知道如何转换。我尝试安装ffmpeg,但它无法对mp3进行编码。我读过gstreamer做的,但我不知道怎么做。我已经安装了gstreamer和python。我可以用python编程,但从源代码或任何更高级别的命令行编译软件并不舒服。我只知道命令行的基本知识 mplayer-dumpaudio-dumpfile out.bin mplayer <videofile> -dumpaudio -dumpfile out.bin

我在ubuntu上,想将mp4视频转换成mp3音频文件,但不知道如何转换。我尝试安装ffmpeg,但它无法对mp3进行编码。我读过gstreamer做的,但我不知道怎么做。我已经安装了gstreamer和python。我可以用python编程,但从源代码或任何更高级别的命令行编译软件并不舒服。我只知道命令行的基本知识

mplayer-dumpaudio-dumpfile out.bin
mplayer <videofile> -dumpaudio -dumpfile out.bin

它将复制原始音频流,然后使用sox、lame、vlc或诸如此类的工具轻松转换。VLC也有很好的转换选项,而且它有一个GUI。我不知道如何只提取音频,但它应该能够使用TAE。它可以做您想要的任何事情。

hmm,对于一个简单的python解决方案,您可以随时检查python视频转换器,示例代码如下:

    from converter import Converter
    c = Converter()
    conv = c.convert('g.mp4', 'clip5.mp3', {'format':'mp3','audio':{'codec': 'mp3','bitrate':'22050','channels':1}})
    for timecode in conv:
        pass

其中,clip5.mp3是输出文件的名称,

使用GStreamer最简单的方法是使用
gst-launch
命令行实用程序创建带有decodebin元素的GStreamer管道:

gst-launch-1.0 filesrc location=in.mp4 ! decodebin ! audioconvert ! lamemp3enc ! filesink location=out.mp3
如果您的mp4文件包含mp3格式的音频曲目,您可能希望避免重新编码:

gst-launch-1.0 filesrc location=in.mp4 ! qtdemux ! audio/mpeg ! filesink location=out.mp3
如果要使用FFMPEG,可以使用以下命令:

ffmpeg -i in.mp4 out.mp3
您可以使用
-acodec copy
选项避免重新编码(如果音频曲目在mp3中):

ffmpeg -i in.mp4 -acodec copy out.mp3

“它无法对mp3进行编码”。太模糊了
ffmpeg
可以做到这一点。请告诉我们您尝试了什么命令,以及出现了什么错误。为什么不先从命令行学习如何使用ffmpeg手动执行,然后从python启动一个进程来调用ffmpeg,或者将其用作库?为了让ffmpeg正常工作,我需要从源代码构建它以与lame一起工作,但我不具备这样做所需的技术技能。因此,我正在寻找一种不需要从源代码构建软件的替代方法。我没有包含ffmpeg错误,因为我理解该错误。即使在使用pip安装它之后,我也会收到一个错误
没有名为converter的模块。@raptor96使用pypi,解包并从那里安装它,这一点很重要,pip实际上是指一个不同的库,仍然是相同的错误,从pypi下载,解压缩并安装,它说
没有名为Converter的模块