이 질문에 대한 답변은 중복 정보를 포함하고 많은 사람들이 부정확 한 내용을 포함하여 약간 혼란스러워졌습니다. 이 답변은 문제의 해결을 위해 이러한 답변의 정보를 간소화하려는 시도입니다.
가장 중요한 것은 현재이 질문에 가장 많이 투표 된 그레고리 (Gregory)의 대답은 -ac 2
스위치를 사용하는 것과 다르지 않다는 것 입니다.
5.1 채널 오디오 스트림을 스테레오로 다운 믹싱 -ac 2
FFmpeg에는 5.1 트랙을 스테레오로 다운 믹싱 할 수있는 기능이 내장되어 있으며 FFmpeg 자체 문서에서 권장 하는 솔루션이기도합니다 .
참고 : ffmpeg -ac
는 매우 특정한 요구가없는 한 팬 필터보다 선호되는 기본 다운 믹스 (및 업 믹스) 시스템을 통합합니다 ( 옵션).
이 -ac 2
스위치는 소스의 6 채널 스트림 (뒤 좌측, 후방 우측, 전방 좌측, 전방 우측 및 전방 중앙)에서 출력 스테레오 스트림의 전방 좌측 및 전방 우측 채널로 처음 5 개 채널의 비율을 혼합하여 작동합니다.
LFE 채널의 그래서, 오디오 일 경우 ( 0.1 5.1은 우퍼 예약 깊은 저주파 효과를 사용)는 완전히 무시 이 옵션을 사용하는 경우.
불행히도, 내 테스트 -ac 2
에서 소스와 가장 다른 음악과 대화의 전반적인 수준을 얻었으므로 테스트 한 모든 공식 중 최악의 결과를 제공하는 다운 믹스 공식으로 만들었습니다. 귀하의 요구에 맞는 완벽한 다운 믹스를 제공합니다.이 경우 다른 공식을 사용하면 과잉이 될 수 있습니다.
트랜스 코딩 -ac 2
없이 DTS 트랙을 다운 믹스하려면 (즉, 코덱과 확장명을 동일하게 유지) :
ffmpeg -i "sourcetrack.dts" -c:a dca -ac 2 "stereotrack.dts"
그의 답변에서 Mephisto가 지적했듯이 대화와 음악 사운드가 서로 균형이 잘 맞았지만 볼륨이 부족하면 스트림을 다운 믹스하면서 볼륨을 높일 수 있습니다.
ffmpeg -i "sourcetrack.dts" -c:a dca -ac 2 -vol 425 "stereotrack.dts"
들어 -vol
스위치 소스 100 % 양의 정수 값 (256)이 오디오 스트림의 전체 부피를 증가보다 더 큰 값을 사용하는 것과 동일하다. 그러나 너무 많이하면 특히 큰 부분에 왜곡이나 아티팩트가 생길 수 있습니다.
스테레오 오디오 스트림을 다운 믹스하는 방법 과 예를 들어, AC3 코덱으로 트랜스 코딩 :
ffmpeg -i "sourcetrack.dts" -c:a ac3 -ac 2 "stereotrack.ac3"
맞춤형 믹스 알고리즘으로 5.1 채널 오디오 스트림을 스테레오로 다운 믹싱
보다 높은 품질의 다운 믹스를 원하거나 LFE 스트림을 출력에 반드시 포함시켜야하는 경우 FFmpeg의 오디오 필터 스위치 ( -af
)를 사용하여 사용자 정의 믹스 공식을 사용하여 오디오를 다운 믹스 할 수 있습니다 .
ATSC 공식으로 다운 믹싱 (Gregory 's answer)
이 답변을 게시 할 당시이 질문에 대한 최고 투표 답변은 Gregory 's 였습니다.이 방법 은 ATSC 사양 (섹션 7.8.2, 두 채널로 다운 믹싱 참조 )을 FFmpeg 오디오 필터에 넣습니다. 이 사양 자체 는 주제에 대한 FFmpeg 문서와 직접 연결 되어있어 FFmpeg 가 -ac 2
스위치에 대해 이미 구현 한 것과 같은 공식 일 가능성이 높습니다 . 이것이 사실이라면, Gregory의 답변에 전체 수식을 입력하는 것이 -ac 2
스위치를 사용하는 것과 다르지 않으므로 시간 낭비입니다.
나는 Gregory의 답변에서 필터 -ac 2
와 -af
필터를 사용하여 동일한 입력 오디오를 다시 인코딩하여이를 확실하게 테스트하기로 결정했습니다 (사용 된 정확한 명령은이 답변의 각주에서 볼 수 있습니다).
그런 다음 결과 출력 파일의 크기를 비교하여 바이트 단위의 동일한 크기라는 것을 알았습니다.
마지막으로 Audacity에서 두 출력 파일을 모두 열고 파형을 비교하여 동일한 지 확인했습니다 (확대하려면 클릭).
따라서 Gregory의 답변에 자세히 설명 된 ATSC 수식은 FFmpeg 에 의해 이미 구현 된 것과 동일 하며 사용 -ac 2
하지 않는 것이 없으면 훨씬 중복 되고 훨씬 성가신 명령 이라는 것은 상당히 결정적인 것으로 보입니다 .
LFE 채널을 버리지 않고 다운 믹싱 (Dave_750 's answer)
답변에 포함 된 몇 가지 중에서, 이것은 LFE 채널을 출력 스테레오에 완전히 버리지 않고 믹스하는 것으로 보이는 다운 믹스 공식 중 유일한 것이므로 결과적으로 소스에서 가장 적은 사운드를 보장하는 것은 잃어버린.
전체 음량 레벨은을 수행하는 것보다 높고 꽉 -ac 2
찼지만 여전히 야간 모드 대화 다운 믹스보다 낮습니다. 그러나 음악 레벨은 Nightmode Dialogue 다운 믹스보다 소스에 훨씬 더 가깝고 LFE 트랙이 포함되어 있기 때문에이 다운 믹스 공식을 사용하는 동안 출력 볼륨을 높이면 다른 모든 것보다 5.1 소스에 더 정확한 사운드를 출력 할 수 있습니다 내가 테스트 한 공식.
이 기능이 있다면이 다운 믹스 공식과 Nightmode Dialogue 다운 믹스를 모두 사용하여 오디오 스트림을 인코딩하고 두 파형을 신중하게 비교하여 어느 것이 더 나은지 결정하는 것이 좋습니다.
이 식을 이용하여 스테레오 5.1 트랙 다운 믹스 및 (256 원본 소스의 볼륨 레벨의 100 % 임) (425)에 그것의 볼륨을 늘리
ffmpeg -i "sourcetrack.dts" -c dca -vol 425 -af "pan=stereo|FL=0.5*FC+0.707*FL+0.707*BL+0.5*LFE|FR=0.5*FC+0.707*FR+0.707*BR+0.5*LFE" "outputstereo.dts"
Robert Collier의 야간 모드 대화와의 다운 믹싱 (Shane Harrelson의 답변)
Doom9 포럼 에서 Robert Collier가 작성하고 Shane Harrelson이 그의 답변으로 제공 한 Nightmode Dialogue 공식 은 스위치 보다 다운 믹스가 훨씬 뛰어납니다. 지나치게 조용한 대화 대신, 출처.-ac 2
Robert Collier의 믹스 설명 :
eac3to를 사용하여 많은 DTS 영화 트랙을 5.1에서 2.0으로 변환 한 후, 기본 eac3to 채널 매핑이 매우 조용한 대화와 지나치게 큰 음악 및 액션 장면을 초래한다는 것을 알았습니다. eac3to 채널 다운 믹스 계수는 과학적 근거를 갖지만, 낮은 대화 볼륨 때문에 실제로는 잘 들리지 않습니다. 이 사전 설정은 왼쪽 및 오른쪽 채널 음악이 여전히 들리지만 백그라운드에서 더 많은 대화를 원하는 사람들을위한 것입니다.
보시다시피 프론트 센터 (대화방)는 이제 제대로 들어와 원래 수준으로 유지됩니다. 반면 음악과 폭발은 배경 효과로 남아 있고 당신을 압도하지 않습니다. 이 사전 설정은 대화를 들으려면 DTS 5.1을 2.0 영화로 변환 한 것을 볼 때 볼륨 노브를 계속 사용하는 문제를 해결합니다. (특히 밤에 다른 사람을 깨우지 않고 대화를 듣고 싶어하는 영화를 볼 때).
불행히도,이 다운 믹스 공식의 음악은 5.1 소스보다 훨씬 낮으며 (콜리어가 "야간 모드"믹스를 만들려는 의도를 고려하여 설계되었을 가능성이 높음) LFE 트랙의 완전한 손실로 인해 전체 출력 오디오가 그렇지 않습니다 부스트 음량 으로 Dave_750의 공식 과 같이 소스 전체에 가깝거나 가까운 사운드 .
그러나 어떤 이유로 스트림의 전체 볼륨을 높이 지 않으려면 야간 모드 대화가 최선의 선택 일 것입니다. 다시 오디오 스트림을 모두 인코딩하고 두 파형을 신중하게 비교하는 것이 좋습니다. .
FFmpeg에서 Nightmode Dialogue 공식과 다운 믹스하려면 :
ffmpeg -i "sourcetrack.dts" -c dca -af "pan=stereo|FL=FC+0.30*FL+0.30*BL|FR=FC+0.30*FR+0.30*BR" "stereotrack.dts"
Tarc의 답변
이 답변은 Shane Harrelson의 답변에서 Nightmode Dialogue 다운 믹스 공식을 MKV 컨테이너의 오디오 스트림을 변환하는 명령에 넣습니다. 이 답변에 제공된 명령은 이러한 오디오 스트림에서 제대로 작동하지만 독립형 오디오 트랙에 맞게 조정하면 오류가 발생합니다.
필터링과 스트림 복사는 함께 사용할 수 없습니다
다운 믹싱 할 때 오디오 코덱 복사 될 수 없기 때문이다 - FFmpeg은이 출력 스트림으로 만드는 다른 변경과 같이 다운 믹스가 요구 변경을 적용 할 수 있도록 트랙을 재 부호화하는 것이.
이 명령에는 -ac 2
FFmpeg가 무시한 중복 스위치 도 포함되었습니다 .
테스트 명령
이 답변에 대해 수행 한 테스트의 신뢰성을 보여주기 위해 각 다운 믹스 공식을 테스트하는 데 사용한 모든 명령이 아래에 나와 있습니다.
-ac 2
옵션에 사용 된 테스트 명령 :
ffmpeg -i "signed16bitPCM.wav" -c pcm_s16le -ac 2 "Audio 1 (-ac 2).wav"
Gregory의 답변에 사용 된 테스트 명령 :
ffmpeg -i "signed16bitPCM.wav" -c pcm_s16le -af "pan=stereo|FL < 1.0*FL + 0.707*FC + 0.707*BL|FR < 1.0*FR + 0.707*FC + 0.707*BR" "Audio 2 (ATSC Algorithm Downmix).wav"
Dave_750의 답변에 사용 된 테스트 명령 :
ffmpeg -i "signed16bitPCM.wav" -c pcm_s16le -vol 425 -af "pan=stereo|FL=0.5*FC+0.707*FL+0.707*BL+0.5*LFE|FR=0.5*FC+0.707*FR+0.707*BR+0.5*LFE" "Audio 4 (Dave750 Downmix).wav"
Shane Harrelson의 답변에 사용 된 테스트 명령 :
ffmpeg -i "signed16bitPCM.wav" -c pcm_s16le -af "pan=stereo|FL=FC+0.30*FL+0.30*BL|FR=FC+0.30*FR+0.30*BR" "Audio 3 (Nightmode Dialogue Downmix).wav"