저번에 샤나로 인코딩하면 영상은 괜찮은데 소리가 중간 중간 먹힌다고 말씀드렸는데요, 소리를 인코딩을 안하고 스트림 복사로 하니까 먹히는 증세가 없습니다. 그럼 그냥 스트림 복사로 해도 괜찮은가요?
1.소리를 mp3로 인코딩시 먹히는 영상 (aac 등 다른거로 해도 똑같이 먹힘니다)
https://drive.google.com/open?id=1ePmKgaDKbciU38GZ6yUniEBVShy-Y5Iu
2.소리를 인코딩 안하고 그냥 스트림 복사로 할 시 영상
https://drive.google.com/open?id=1iblrQOiblx5nCMevV32p7NNdDL1RMl6e
샤나 인코더 나름 만족하면서 후원까지 하고 그랬는데,이 소리 문제가 나오니 난감하네요. 한 번 체크와 조언 부탁드립니다.
결론적으로 말하면 샤나에 내장된 FFmpeg 및 해당 오디오 인코더(mp3의 경우 libmp3lame, aac의 경우 libfdk-aac)의 문제입니다.
샤나인코더 내장 FFmpeg 버전은 3.4.1인데 인코더 각각의 버전은 제작자님이 공개하지 않으셔서 알 수가 없네요.
FFmpeg 가장 최신의 안정 버전은 4.0.1입니다. 2018년 6월 19일자 nightly build 버전을 구해서 DOS에서 FFmpeg 인코딩해 보았더니 해당 문제가 사라지더군요.
비디오는 스트림 복사하고 오디오는 mp3(libmp3lame)로 인코딩했습니다.
https://drive.google.com/open?id=1pCWhJbTRCC8Knd9aYK2dUFFB-nBO_Y3N
해당 명령어는 다음과 같습니다.
ffmpeg -i sound_original.mkv -af "volume=13.50dB" -c:v copy -c:a libmp3lame -ar 48000 -b:a 128k -abr 1 -ac 2 -metadata creation_time=now -metadata:s:v:0 language=eng -metadata:s:a:0 language=eng -y sound_fix_ffmpeg(cli)_libmp3lame.mkv
(sound_original.mkv이 오디오 스트림 복사하셨던, 문제가 없는 동영상 파일, sound_fix_ffmpeg(cli)_libmp3lame.mkv이 FFmpeg으로 인코딩해서 얻고자 하는 output 동영상 파일 이름(위에 링크된 동영상))
왜 이런 문제가 생겼는지 알아보기 위해 파형을 조사했습니다.
문제가 생겼던 mp3 인코딩 영상입니다.
"소리가 먹힌다"고 표현하셨던 부분이 clipping이 돼 있는 걸 볼 수 있습니다.
이에 반해 스트림 복사를 했던 영상입니다.
같은 부분에 clipping이 없는 걸 확인하실 수 있죠.
이 영상을 FFmpeg 바이너리로 CLI(command line interface, 윈도우에서는 DOS) 환경에서 mp3 인코딩한 영상입니다.
문제가 발생하지 않습니다. 따라서 샤나 자체의 FFmpeg와 libmp3lame 문제였다는 것을 알 수 있습니다.
이 문제는 샤나가 업데이트되지 않는 한 오디오 인코딩으로는 해결하실 수 없습니다. 어차피 원본 오디오가 AAC니 그냥 스트림 복사하시길...
꼭 mp3로 인코딩해야 한다시면 현재로선 다른 인코딩 프로그램을 이용하시거나 FFmpeg 바이너리를 구해서 DOS에서 인코딩하시는 방법밖에는 없겠군요.