iOS 장치에서 ffmpeg를 사용하여 flv 파일을 mp4로 변환하여 재생하려고 시도했지만 변환 된 비디오의 품질이 원본보다 훨씬 나쁩니다.
내가 사용하는 명령은 다음과 같습니다.
ffmpeg -i input.flv -ar 22050 output.mp4
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를 조금 덜 사용합니다.
ffmpeg
대한 지원libaac
이 중단 된 것으로 나타났습니다 . 이 질문 은를 통해ffmpeg
네이티브 AAC 인코더 를 사용 -c:a aac
하거나 Fraunhofer FDK AAC 코덱을 통해 -c:a libfdk_aac
(를 ffmpeg
지원 하는 컴파일이 필요함) 제안합니다 libfdk_aac
.