Home [Audio] ffmpeg 사용해서 16k wav 파일로 변환하기
Post
Cancel

[Audio] ffmpeg 사용해서 16k wav 파일로 변환하기

ffmpeg 사용해서 16k wav 파일로 변환하기

Audio Attributes

Audio 파일을 사용하기 위해서는 여러가지 값들을 알고 있어야한다.

Sample Rate

  • 샘플의 빈도 수
  • 즉, 1초당 추출되는 샘플의 개수.
  • SR이 높으면 높은 밀도의 음성, 낮으면 낮은 밀도의 음성.
  • → 이것을 강제로 낮추면 느린 배속으로 재생이 되고, 높히면 빠른 배속으로 재생이 됨.

Bit Rate

  • 1초당 전송되는 데이터 양
  • 즉, 1초당 전송되는 비트 수를 의미함.

ffmpeg

커맨드에서 Audio 파일을 원하는 포맷에 맞게 변경하기 위해서 ffmpegsoxi를 많이 쓰는데 오늘은 ffmpeg으로 16k wav파일을 만드는 커맨드를 보려한다.

사용

  • 나는 서버 상에서 ffmpeg을 사용해야하는데, 설치하지 못하는 환경이라서 docker image를 이용해 run을 시켰다.
1
$ docker run --rm -v /home:/config DOCKER_IMAGE:latest ffmpeg -i /config/test1.wav
  • 이런식으로 하면 ffmpeg이 사용 가능하다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
ffmpeg version n4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-44)
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
Guessed Channel Layout for Input Stream #0.0 : mono
Input #0, wav, from '/config/test1.wav':
  Duration: 00:00:03.12, bitrate: 256 kb/s
    Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 16000 Hz, mono, s16, 256 kb/s
At least one output file must be specified

원하는 옵션으로 만들기

나는 들어오는 모든 input Audio를

wav, 16k, 16bit, mono 의 Format으로 만들고 싶었다.

1
$ docker run --rm -v /home:/config DOCKER_IMAGE:latest ffmpeg -y -i /config/test1.aac  -f s16le -ac 1 -ar 16000 /config/test1_out.wav

ffmpeg에서는 input 파일명과 output 파일명이 같을 수 없다.

  • 원하는 옵션으로 output 파일이 만들어진다.
This post is licensed under CC BY 4.0 by the author.