ffmpeg 0.5 flv 到 wav 的转换会创建其他程序无法打开的 wav 文件

标签 ffmpeg flv wav

我正在使用以下命令将 FLV 文件转换为音频文件以输入 julian,这是一个语音转文本程序。

cat  ./jon2.flv | ffmpeg -i - -vn -acodec pcm_s16le -ar 16000 -ac 1 -f wav - | cat - > jon2.wav

cat 用于调试目的,因为最终用途将是一个正在运行的程序,它将 FLV 通过管道传输到 ffmpeg 的标准输入,标准输出传输到 julian。

生成的波形文件由"file"标识为:
jon3.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, mono 16000 Hz

VLC(基于 ffmpeg)播放文件,但没有其他工具可以打开/查看数据。它们显示空 wav 文件或不会打开/播放。例如来自 CS4 的 Sound Booth。

有没有其他人有类似的问题? Julian 需要 16000 Hz 的 wav 文件 16 位单声道。朱利安似乎确实阅读了该文件,但似乎并未浏览整个文件(可能无关)。

谢谢,

-rr

最佳答案

尝试让 ffmpeg 直接对输入/输出文件进行操作,而不是通过管道将数据传入和传出 ffmpeg:
ffmpeg -i INPUT_FILE.FLV -vn -acodec pcm_s16le -ar 16000 -ac 1 -f wav OUTPUT_FILE.WAV
问题可能是因为您正在为 ffmpeg 提供一个流,并要求它写入一个流,它要么不知道输入流的长度,或者更可能的是,它无法返回并重写头部中的长度数据输出文件。

关于ffmpeg 0.5 flv 到 wav 的转换会创建其他程序无法打开的 wav 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2581229/

相关文章:

audio - 如何使用 ffmpeg 转换为 Nellymoser 16kHz?

flash - 使用 FFMPEG 将 SWF 文件转换为 FLV 并出现错误 "could not find codec parameters"

python - 使用 Python/FFMPEG/Pydub 将 Wave 文件的部分静音

winforms - 从进程重定向 StandardOutput

unity3d - FFMPEG 从 .mov 转换为 .webm - "Unable to find suitable output for vp8"

linux - 如何使用 FFmpeg 或 mencoder 或 smth 其他按大小拆分 flv 文件?

python - pydub 从 mp3 文件访问采样率 (Hz) 和音频信号

python - 为什么我应该丢弃 FFT 返回的一半?

android - 在 Android 上使用 FFMPEG

video - 如何将 ffmpeg 与 vidstab 和 filter_complex 一起使用