FFMPEG를 사용하여 FLV를 MP4로 변환하고 품질 유지

iOS 장치에서 ffmpeg를 사용하여 flv 파일을 mp4로 변환하여 재생하려고 시도했지만 변환 된 비디오의 품질이 원본보다 훨씬 나쁩니다.

내가 사용하는 명령은 다음과 같습니다.

ffmpeg -i input.flv -ar 22050 output.mp4

flv에서 mp4 로의 변환에 가장 적합한 설정을 제공 할 수 있다면 정말 감사하겠습니다.



답변

FLV에 사용 된 코덱에 따라 mp4 컨테이너에 다시 넣는 것만으로도 벗어날 수 있습니다. 당신은해야합니다 H.264또는 MPEG4 simple profile비디오 및 AAC오디오를. 당신은 소스 파일에 대한 정보를 찾을 수 있습니다ffmpeg -i input.flv

단순히 H.264 / MPEG4 Simple + AAC를 사용하는 것이 충분한 지 또는 지원되는 코덱에 특정 옵션이 있는지 확실하지 않습니다. 테스트하기가 쉽습니다.

사용해보십시오

ffmpeg -i input.flv -c copy -copyts output.mp4

-copyts이다 copy timestamps는 오디오 동기화 도움이 될 것입니다.

그래도 작동하지 않으면 오디오 및 비디오 코덱을 사용해보십시오. 파일을 다시 인코딩합니다.

ffmpeg -i input.flv -c:v libx264 -crf 23 -c:a libfaac -q:a 100 output.mp4

비디오 품질을 향상 시키려면 더 낮은 CRF 값 (예 : 18 이하)을 사용할 수 있습니다. 더 작은 파일을 얻으려면 더 높은 CRF를 사용하지만 품질이 저하 될 수 있습니다.

오디오 품질을 향상 시키려면 더 높은 품질 값을 사용하십시오. FAAC의 경우 100기본값입니다.


다음은 질문에서 제안 된 ffmpeg 명령에 대한 몇 가지 생각입니다.

-ar오디오 샘플 속도를 나타냅니다. 나는 당신이 일을 더 잘 이해할 때까지 이것을 망치지 않는 것이 좋습니다. 오디오 인코딩으로 재생하려면, 비트 레이트 (예, 조정 -b:a 128k) 및 인코더가에 따라 어떻게 할 것인지를 선택하자.

이 길을 따라 가면 …

CD 품질은 44100Hz 샘플링입니다. 일반적인 비디오는 48000Hz를 사용합니다.

원래 질문의 예에서 22050은 cd 품질 샘플 속도의 1/2입니다. CD 자료를 다운 컨버팅하는 경우 좋은 선택입니다. 48KHz 소스로 시작하는 경우 (아마도; 비디오 파일에서 44100보다 훨씬 흔합니다) 대신 24Khz를 사용합니다. 중요하지는 않지만 조금 더 나은 소리를 내고 변환에 CPU를 조금 덜 사용합니다.