从mp4中提取WAV,同时保持最高质量


Answers:


20

wav文件通常包含未压缩的音频,这是wav使用生成文件时的默认设置ffmpeg。因此,由于没有有损压缩(或任何形式的压缩)会降低质量,因此您的命令将已经保留了最高质量。

假设原始音频已压缩,则只需将原始音频(不包括视频)复制到新mp4文件中,就可以保持相同的质量,而无需提供未压缩音频所需的大文件大小:

ffmpeg -i my_video.mp4 -c copy -map 0:a output_audio.mp4

您还可以对其进行重新编码或将其转换为其他音频编解码器,但是如果该编解码器使用有损压缩,则质量会下降。


谢谢。采样率和每秒字节数呢?ffmpeg如何自动选择这些?
阿梅利奥·瓦兹克斯·雷纳

采样率将与输入的采样率相同。由于未压缩,因此wav文件的比特率就是采样率 × 样本大小 × 通道数。如果要降低质量,则可以要求ffmpeg将其重新采样为较低的速率,将其更改为8位PCM,或将其降混为单声道,但默认情况下不这样做。
mark4o

1
顺便说一句,您还可以要求它以更高的速率重新采样,但这只会增加文件大小,而不是质量,因此,除非您需要特定的采样率,否则没有太大意义。
mark4o

1
在我与Ubuntu 14.04系统我不得不用-acodec copy,而不是-c copy -map 0:a
丹尼尔·阿尔德

这不会导出为wave文件,也无法回答问题。
安德鲁

22

在Ubuntu 14.04中flv / mp4 to wav / flac / mp3使用ffmpeg2.3.1版从视频中提取无损/有损音频()

请访问:http : //howto-pages.org/ffmpeg/

首先从源头中找到基本数据。在VLC Player中打开视频。去

> Tools > Codec Information 
> Stream 0 (Video/ Codec/ Resolution/ Frame rate) 
> Stream 1 (Audio/ Codec/ Channel/ Sample rate)

考虑一个输入文件(-i),例如input.mp4或其他文件- flv, avi, ...。要删除视频(-vn)并以output.wav44100 Hz(-ar 44100)的采样率未压缩()的音频以带符号的16位低端(-acodec pcm_s16le)采样和2通道(立体声)(-ac 2)调制的脉冲编码方式取出,请使用以下命令。

ffmpeg -i input.mp4 -vn -acodec pcm_s16le -ar 44100 -ac 2 output.wav

其他-acodec选项是mp3 flac m4a

-acode flac转换为24位文件。对于16位采样,应为

ffmpeg -i input.mp4 -acodec flac -bits_per_raw_sample 16 -ar 44100 output.flac

WAV和FLAC文件大于MP4文件

ac3转换可以使用,-acodec 3F2R/LFE -ac 6但会创建4条虚拟轨道,如Audacity中所述。

对于mp3转换,只需使用

ffmpeg -i input.mp4 -vn -acodec mp3 -ab 320k -ar 44100 -ac 2 output.mp3

通过从终端上的命令行获得的列表中进行尝试,可以获得输入和输出的更多选项。

$ ffmpeg -help

1
这不能回答问题。OP已经知道如何将音频提取为WAV文件。他们在问如何控制质量,这当然是不可能的,因此应该是答案(就像mark4o一样)。MP3和FLAC也不在这里。
slhck

我来到此链接以寻求解决方案,而当我在工作时,我已经提到了很多。据我了解,我也正在研究的问题是“如何控制wav文件的质量?(例如,说我想尽可能地保留原始音频的质量)”。我不是技术人员,而是业余爱好者,是Ubuntu和ffmpeg的新手。$ ffmpeg -i input.mp4还提供了所有启动质量,可以相应地添加选项以获取最大的收益。
dr.murli 2014年

Unknown encoder 'pcm_s161e'请提供有关如何解决此问题的建议。
kRazzy R
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.