나는 ffmpeg를 사용하고 있지만 php가 아닌 자바 스크립트로 wav 파일에서 pcm으로 변환하고 싶습니다 .mp3 또는 wma 로의 변환이 잘 작동하지만 pcm이 아닌 것은 오류가 무엇인지 적어도 하나의 입력을 선택해야한다고 알려주는 것입니까? 다음은 내 코드입니다 (명령 줄 만 해당).
var arguments = [];
arguments.push("-y");
arguments.push("-vn");
arguments.push("-i");
arguments.push(fileName);
arguments.push("-b:a");
arguments.push(getBitrate());
switch (getOutFormat()) {
case "mp3":
arguments.push("-acodec");
arguments.push("libmp3lame");
arguments.push("out.mp3");
break;
case "wma":
arguments.push("-acodec");
arguments.push("wmav1");
arguments.push("out.asf");
break;
case "pcm":
//arguments.push("s16le");
arguments.push("-ac");
arguments.push("1");
arguments.push("-f");
//arguments.push("pcm_s16le");
arguments.push("out.pcm");
}
mp3 및 wma는 파일 형식 (또는 래퍼)이고 pcm은 코덱입니다. ffmpeg는 출력 코덱으로 pcm을 지원하지만 출력 형식으로 pcm을 지원하지 않는다고 생각합니다. 당신의 목표는 무엇입니까?
편집 : 확인
$ ffmpeg -formats
과
$ ffmpeg -codecs
지원되는 형식 및 코덱에 대한 자세한 내용은. stackoverflow.com/questions/4854513/can-ffmpeg-convert-audio-to-raw-pcm-if-so-how의 도움으로 편집 된 args
다음과 같이 원시 pcm 출력을 얻을 수 있습니다.
case "pcm":
arguments.push("-f");
arguments.push("s16le");
arguments.push("-acodec");
arguments.push("pcm_s16le");
arguments.push("-ac");
arguments.push("1");
arguments.push("out.pcm");
생성하는 파일 은 일반적으로 원시 파일 이라고하며 이를 읽을 수 있으려면 샘플링 주파수, 양자화, 채널 수, 엔디안을 지정해야합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다