FFmpeg


2년 쯤 전에 썼던 포스트에 이은 포스팅



1. ffmpeg는 내부적으로 pcm_f32le를 사용


기본적으로 ffmpeg를 사용해 AAC로 변환할 때는 아래와 같이 사용한다.


ffmpeg -i test.mkv -vn -acodec pcm_s16le -f wav - | neroAacEnc -lc -if - -ignorelength -of out.aac


그런데, ffmpeg은 내부적으로 pcm_f32le(32비트 부동소수점)을 사용한다.

특히, 추가로 오디오 필터를 적용할 때는 pcm_f32le를 사용하는 것이 좋다.

더불어, neroAacEnc는 pcm_f32le를 잘 인식한다.


즉, 아래와 같이 사용하는 것이 여러모로 더 낫다.


ffmpeg -i test.mkv -vn -acodec pcm_f32le -f wav - | neroAacEnc -lc -if - -ignorelength -of out.aac



2. 5.1ch 이상에서 센터 오디오 증폭


5.1ch 이상의 오디오를 변환할 때는 보통 이렇게 한다.


ffmpeg -i test.dts -vn -acodec pcm_f32le -ac 2 -f wav - | neroAacEnc -lc -if - -ignorelength -of out.aac


그런데, 막상 변환을 해보면 센터 오디오(주로 대사)의 소리가 작을 때가 많다.

이럴 때는 아래와 같이 하면 센터 오디오를 증폭하며 스테레오로 변환할 수 있다.


ffmpeg -i test.dts -vn -acodec pcm_f32le -ac 2 -af pan=stereo:FL=FC+0.30*FL+0.30*BL:FR=FC+0.30*FR+0.30*BR -f wav - | neroAacEnc -lc -if - -ignorelength -of out.aac



3. NeroAacEnc 대신 iTunes를 사용하여 AAC 인코딩


iTunes가 설치된 환경에서는 NeroAacEnc 대신에 iTunes를 사용해서 AAC 인코딩이 가능하다.

물론, 직접 iTunes를 사용할 수도 있지만, 너무 어려우니 패스하고[…] qaac를 이용하면 된다.


ffmpeg -i test.mkv -vn -acodec pcm_f32le -f wav - | neroAacEnc - --ignorelength -o out.aac


qaac 역시 pcm_s16le은 물론 pcm_f32le 입력도 지원한다.



신고

+ Recent posts