我正在使用 FFMPEG 从 *.avi 视频文件中提取音频
这是用 ffprobe 打印的 avi 文件格式
ffprobe 0.avi
ffprobe 版本 2.8.4 版权所有 (c) 2007-2015 FFmpeg 开发人员使用 gcc 4.8 构建(Ubuntu 4.8.4-2ubuntu1~14.04)
配置:--disable-yasm
libavutil 54. 31.100 / 54. 31.100
libavcodec 56. 60.100 / 56. 60.100
libavformat 56. 40.101 / 56. 40.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 40.101 / 5. 40.101
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.101 / 1. 2.101
无效UE golomb 代码 <-- 此行在控制台中为红色,可能表示错误,但视频播放正常
最后一条消息重复 2 次
输入 #0,avi,来自“0.avi”:
持续时间:00:02:54.33,开始:0.000000,比特率:1880 kb/s
流 #0:0:视频:h264 (高) (H264 / 0x34363248),yuv420p,1280x720,1740 kb/s,15 fps,15 tbr,15 tbn,30 tbc
流 #0:1:音频:pcm_s16le ([1][0][0][0] / 0x0001),8000 Hz,1 通道,s16,128 kb/s
我使用了 ffmpeg 命令:
ffmpeg -i 0.avi -vn -c:a copy sound0.wav
转换进度看起来不错
输出 #0,wav,到“sound0.wav”:
元数据:
ISFT:Lavf56.40.101
流 #0:0:音频:pcm_s16le ([1][0][0][0] / 0x0001),8000 Hz,单声道,128 kb/s
流映射:
流 #0:1 -> #0:0 (复制)
按 [q] 停止,按 [?] 获取帮助
大小 = 2726kB 时间 = 00:02:54.49 比特率 = 128.0kbits/s
视频:0kB 音频:2726kB 字幕:0kB 其他流:0kB 全局标头:0kB
多路复用开销:0.002794%
输出声音信息:
输入 #0,wav,来自“sound0.wav”:
元数据:
编码器:Lavf56.40.101
持续时间:00:02:54.49,比特率:128 kb/s
流 #0:0:音频:pcm_s16le ([1][0][0][0] / 0x0001),8000 Hz,1
通道,s16,128 kb/s
一切看起来都很好,但是音频输出文件时会出现恼人的声音(只是哔哔声或类似的声音),而输入视频则没有问题。
http://vocaroo.com/i/s00Ia5bO0JID
我没有使用多媒体或 ffmpeg 的基础知识,所以我不知道发生了什么。
任何帮助,将不胜感激。
答案1
似乎流复制正在复制整个流,包括超出视频时长的部分。
尝试
ffmpeg -i 0.avi -vn -c:a copy -t 02:54.33 sound0.wav
答案2
这可能是由于编解码器问题造成的。该选项-c:a copy
复制音频编解码器。
用于ffmpeg -i 0.avi -c:a libmp3lame sound0.mp3
将音频编码为 mp3 格式。