我尝试了以下命令从视频中提取音频:
__CODE__
但我输出为
ffmpeg -i Sample.avi -vn -ar 44100 -ac 2 -ab 192k -f mp3 Sample.mp3
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
Pau*_*ish 339
要在不重新编码的情况下提取音频流:
ffmpeg -i input-video.avi -vn -acodec copy output-audio.aac
Run Code Online (Sandbox Code Playgroud)
-vn 没有视频. -acodec copy 说使用已经在那里的相同音频流. 读取输出以查看它是什么编解码器,以设置正确的文件扩展名.
Jer*_*son 95
要从AVI编码高质量MP3最佳使用-q:a用于可变比特率:
ffmpeg -i sample.avi -q:a 0 -map a sample.mp3
Run Code Online (Sandbox Code Playgroud)
如果要从视频中提取音频的一部分,请使用-ss选项指定开始时间戳,使用-t选项指定编码持续时间,例如从3分钟和5秒内指定45秒:
ffmpeg -i sample.avi -ss 00:03:05 -t 00:00:45.0 -q:a 0 -map a sample.mp3
Run Code Online (Sandbox Code Playgroud)
时间戳需要采用HH:MM:SS.xxx格式或以秒为单位.
如果不指定-t选项,它将结束.
llo*_*gan 44
这会将所有音频放入一个文件中:
ffmpeg -i input.mov -map 0:a -c copy output.mov
Run Code Online (Sandbox Code Playgroud)
-map 0:a仅选择所有音频流。视频和字幕将被排除在外。-c copy启用流复制模式。这会复制音频并且不会对其重新编码。-c copy如果要重新编码音频,请删除。提取音频流 #4 的示例:
ffmpeg -i input.mkv -map 0:a:3 -c copy output.m4a
Run Code Online (Sandbox Code Playgroud)
-map 0:a:3仅选择音频流 #4(ffmpeg从 0 开始计数)。-c copy启用流复制模式。这会复制音频并且不会对其重新编码。-c copy如果要重新编码音频,请删除。类似于上面的例子,但没有-c copy. 各种例子:
ffmpeg -i input.mp4 -map 0:a output.mp3
ffmpeg -i input.mkv -map 0:a output.m4a
ffmpeg -i input.avi -map 0:a -c:a aac output.mka
ffmpeg -i input.mp4 output.wav
Run Code Online (Sandbox Code Playgroud)
此示例中的此输入有 4 个音频流。每个音频流将作为单个单独的文件输出。
ffmpeg -i input.mov -map 0:a:0 output0.wav -map 0:a:1 output1.wav -map 0:a:2 output2.wav -map 0:a:3 output3.wav
Run Code Online (Sandbox Code Playgroud)
(可选)-c copy在每个输出文件名之前添加以启用流复制模式。
使用通道分离过滤器。从立体声输入获取右前 (FR) 通道的示例:
ffmpeg -i stereo.wav -filter_complex "[0:a]channelsplit=channel_layout=stereo:channels=FR[right]" -map "[right]" front_right.wav
Run Code Online (Sandbox Code Playgroud)
channel_layout是输入的通道布局。它不会自动检测到,因此您必须提供布局名称。channels 列出要提取的频道。ffmpeg -layouts音频通道布局名称(对于channel_layout)和通道名称(对于channels)。-c copy),因此必须重新编码音频。-map和-vn?ffmpeg具有默认的流选择行为,将为每个流类型选择 1 个流(1 个视频、1 个音频、1 个字幕、1 个数据)。
-vn是一个旧的遗留选项。它从默认流选择行为中排除视频。所以,音频,字幕和数据仍然自动选择,除非告知不要与-an,-sn或-dn。
-map更复杂,但更灵活和有用。-map禁用默认的流选择行为,并且ffmpeg只会包含您使用-map选项告诉它的内容。-map还可用于排除某些流或流类型。例如,-map 0 -map -0:v将包括除所有视频之外的所有流。
有关更多示例,请参阅FFmpeg Wiki:地图。
MP3 仅支持 1 个音频流。该错误意味着您正在尝试将 1 个以上的音频流放入 MP3。这也可能意味着您正在尝试将非 MP3 音频放入 MP3。
与上面类似。
您正在尝试将音频格式放入不支持它的输出中,例如将 PCM (WAV) 放入 MP4。
删除-c copy,选择不同的输出格式(更改文件扩展名),或手动选择编码器(例如-c:a aac)。
请参阅容器格式的比较。
这是一个无用的通用错误。实际的、提供信息的错误应紧跟在此一般错误消息之前。
Zim*_*mba 21
似乎您正在从视频文件中提取音频并缩混到立体声通道。
仅提取音频(无需重新编码):
ffmpeg.exe -i in.mp4 -vn -c:a copy out.m4a
Run Code Online (Sandbox Code Playgroud)
ffmpeg.exe -i in.mp4 -vn -c:a copy -ac 2 out.m4a
Run Code Online (Sandbox Code Playgroud)
要生成 mp3 文件,您需要重新编码音频:
ffmpeg.exe -i in.mp4 -vn -ac 2 out.mp3
Run Code Online (Sandbox Code Playgroud)
Álv*_*aro 12
命令行是正确的,适用于有效的视频文件.我会确保你已经安装了正确的库来使用mp3,用另一个音频编解码器安装lame o probe.
平时
ffmpeg -formats
Run Code Online (Sandbox Code Playgroud)
要么
ffmpeg -codecs
Run Code Online (Sandbox Code Playgroud)
会提供足够的信息,以便您了解更多信息.
编码mp3音频ffmpeg.org显示以下示例:
ffmpeg -i input.wav -codec:a libmp3lame -qscale:a 2 output.mp3
Run Code Online (Sandbox Code Playgroud)
我只是通过替换input.wav视频文件名从视频中提取音频.该2装置190千字节/秒.您可以在上面的链接中查看其他质量级别.
这是我刚刚使用的:
ffmpeg -i my.mkv -map 0:3 -vn -b:a 320k my.mp3
Run Code Online (Sandbox Code Playgroud)
选项说明:
-map 0:3意味着我想要来自视频文件的第三个流。把你的 N 放在那里 - 视频文件通常有多个音频流;您可以省略它或用于-map 0:a获取默认音频流。运行ffprobe my.mkv以查看视频文件具有哪些流。for f in *.mp4; do ffmpeg -i "$f" -vn -c:a copy "$(basename "$f" .mp4).m4a"; done
Run Code Online (Sandbox Code Playgroud)
输出选项
-vn禁用视频输出(自动选择或映射任何视频流)。如需完全手动控制,请参阅-map选项。
-ss参数跳过它:for f in *.m4a; do ffmpeg -i "$f" -ss 00:00:40 -c copy crop/"$f"; done
Run Code Online (Sandbox Code Playgroud)
ffmpeg -f concat -safe 0 -i <(for f in ./*.m4a; do echo "file '$PWD/$f'"; done) -c copy output.m4a
Run Code Online (Sandbox Code Playgroud)
对于正在寻找从视频文件中提取音频同时保留原始视频文件参数的更简单方法的人,您可以使用:
ffmpeg -i <video_file_name.extension> <audio_file_name.extension>
Run Code Online (Sandbox Code Playgroud)
例如,运行:
ffmpeg -i screencap.mov screencap.mp3
Run Code Online (Sandbox Code Playgroud)
mp3从mov视频文件中提取音频文件。
| 归档时间: |
|
| 查看次数: |
197642 次 |
| 最近记录: |