2016-11-12 3 views
0

atempo로 템포를 변경하는 방법을 알고 있지만 오디오 파일이 조금 왜곡되어 안정적인 피치 변경 방법을 찾을 수 없습니다. (말하자면 템포와 피치를 140 % 늘리십시오)ffmpeg로 안정적으로 피치와 템포를 변경하는 방법

Sox는 속도 옵션이 있지만 볼륨을 잘라내어 ffmpeg만큼 광범위하게 사용할 수 없습니다. mplayer에는 완벽하게 작동하는 속도 옵션이 있지만 추가 라이브러리 없이는 출력 할 수 없습니다.

나는 ffmpeg가 음조를 바꿀 방법이 없다고 생각하는 것 같습니다. (어쩌면 최근에요?) 주파수가 바뀌거나 다른 플래그를 변경하는 방법이 있습니까? 꽤 멀리 보였고 괜찮은 해결책을 찾을 수 없습니다.

편집 : asetrate : 48k * 1.4 (원래 48k라고 가정)가 작동하지 않는 것처럼 보이지만 여전히 왜곡과 피치가별로 변하지 않습니다.

Edit2가 : https://superuser.com/a/1076762 작품이 답변 정렬하지만,

답변

2

ffmpeg -i <input file name> -filter:a "asetrate=<new frequency>" -y <output file name> 나를 위해 일하게 될 것으로 보인다 훨씬 낮은 옵션 sox speed 1.4보다 품질입니다. ffprobe를 사용하여 입출력 파일의 속성을 검사했는데 품질에 영향을 줄 수있는 차이점이없는 것 같습니다. 비록 내가 그것을 몇 번 실행했고 그 결과 파일의 일부가 코드의 라인이 같더라도 일부 인공물이 있었기 때문에 그것이 어떤 ffmpeg 버그에 의해 야기되었을 수 있습니다. 품질에 만족하지 못하면 다시 실행 해보십시오.

+0

맞아요. 작동하는 것 같습니다. 어쩌면 그것은'atempo'를'asetrate'와 만지기 전에 혼자서 작동하는 것 같기 때문일 수도 있습니다. 품질은 sox 나 mplayer보다 조금 더 어려워 보이지만 충분히 가깝습니다. 도와 주셔서 감사합니다. 먼저 확인하지 않고 원본의 곱하기 <새로운 빈도>를 설정하는 방법이 있는지 알고 있습니까? 48k * 1.4 대신 1.4를 넣을 수 있으며 심음수의 빈도를 1.4로 늘릴 수 있습니까? – jake

+1

흠. 직접 할 수있는 방법이 있는지 모르겠다. 내가 생각할 수있는 유일한 방법은 ffprobe를 사용하여 원래의 주파수 값을 얻는 것이다. 즉, 값을 지정하고 모든 추가 정보를 제거하면 전달할 수있다. 원래 코드 행의 변수로 사용합니다. 다음과 같이 할 수 있습니다 :'ffmpeg -i <입력 파일 이름> -filter : a "asetrate = $ (ffprobe -v 오류 -show_entries 스트림 = sample_rate-default = noprint_wrappers = 1 : nokey = 1 <입력 파일 이름>) * 1.4 "-y <출력 파일 이름> – Sizigia

관련 문제