如何将 mp4 文件中的 aac 音频提取为 m4a

如何将 mp4 文件中的 aac 音频提取为 m4a

如何从 mp4 文件中提取 aac 音频?

我尝试使用 ffmpeg,-acodec copy但如果我使用 mp4 作为输出,它仍会对视频进行编码,并且我得到相同的文件大小。

如果我使用 m4a 作为输出,它仍会以某种方式对视频进行编码,并且我得到几乎相同的文件大小。

使用 aac 作为输出,我无法在 puddletag 中打开文件,尽管文件大小表明视频已被剥离

提前致谢

答案1

我最终自己找到了解决方案,使用 mp4 或 m4a 作为输出格式并添加 -vn 以防止复制视频。

ffmpeg -i input.mp4 -vn -c:a copy output.m4a

(来源:https://superuser.com/a/706622/180675

现在看起来很简单:]

快速无损剥离

答案2

另外一个选择:

MP4Box -add infile.mp4#audio outfile.m4a

MP4Box 是 gpac 包的一部分。

答案3

只是为了好玩,您也可以使用 vlc 来做到这一点。下面的脚本将当前目录中的所有 *.mp4 文件剥离为 *.m4a。有一些错误消息可以忽略。

#!/bin/bash

quote=\"  
executable="/usr/bin/vlc"
argument3=vlc://quit

#parameters
accessvalue=file
muxvalue=mp4

for x in *.mp4; do
    inputname="${x}"
    strippedname=${x%.mp4}
    outputname=${strippedname}.m4a
    quote_outputname=${quote}./${outputname}${quote}
    echo ${inputname}
    echo ${quote_outputname}
    qtranscode=#transcode{vcodec=none}: # rm this commnt, cont' nxt line !!
    standard{access=$accessvalue,mux=$muxvalue,dst=${quote_outputname}}
    argument1="$inputname"
    argument2=--sout=$qtranscode
    "$executable" -I dummy "$argument1" "$argument2" "$argument3"
done

相关内容