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


26

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

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

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

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

ffmpeg  flv  mp4 

답변:


42

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를 조금 덜 사용합니다.


내 대답을 다시 읽으십시오 ... 위에서 언급 한 명령 줄 외에도 비디오 또는 오디오 만 복사하고 다른 것을 다시 인코딩 할 수 있습니다. 예를 들면 ... "ffmpeg -i input.foo -vcodec copy -acodec libfaac -ab 128k -copyts output.mp4"비디오 스트림을 복사하고 오디오를 AAC로 다시 인코딩합니다. libfaac은 품질이 좋지 않지만 작동합니다.
Dan Pritts

오디오 / 비디오 코덱 강제 명령 관련 : 2019 년 9 월부터에 ffmpeg대한 지원libaac중단 된 것으로 나타났습니다 . 이 질문 은를 통해ffmpeg 네이티브 AAC 인코더 를 사용 -c:a aac 하거나 Fraunhofer FDK AAC 코덱을 통해 -c:a libfdk_aac (를 ffmpeg지원 하는 컴파일이 필요함) 제안합니다 libfdk_aac.
aresnick
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.