如何从 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