ffmpeg를 사용하여 iPhone용 FLV를 MP4로 변환할 수 없습니다

ffmpeg를 사용하여 iPhone용 FLV를 MP4로 변환할 수 없습니다

Video-js를 통해 iPhone/iPad에서 재생할 FLV를 MP4로 변환하는 데 문제가 있습니다.

ffmpeg 명령이 제대로 변환되지 않는 것 같습니다.

다음은 cumulusclips 소프트웨어가 변환 시 실행하는 원래 명령 중 하나입니다.

/usr/bin/ffmpeg -i /var/www/html/cumulus/cc-content/uploads/temp/M2q9rmYjSkElrCJA34Cr.avi -s 640x480 -vb 800k -ac 2 -ab 96k -ar 44100     -f flv /var/www/html/cumulus/cc-content/uploads/flv/M2q9rmYjSkElrCJA34Cr.flv

다음과 유사한 출력:

Input #0, avi, from '/var/www/html/cumulus/cc-content/uploads/temp/M2q9rmYjSkElrCJA34Cr.avi':
  Metadata:
    ISFT            : MEncoder 2:1.0~rc2-0ubuntu13
  Duration: 00:09:56.45, start: 0.000000, bitrate: 9586 kb/s
    Stream #0.0: Video: msmpeg4v2, yuv420p, 1920x1080, 24 tbr, 24 tbn, 24 tbc
    Stream #0.1: Audio: mp3, 48000 Hz, 2 channels, s16, 160 kb/s
Output #0, flv, to '/var/www/html/cumulus/cc-content/uploads/flv/M2q9rmYjSkElrCJA34Cr.flv':
  Metadata:
    encoder         : Lavf52.64.2
    Stream #0.0: Video: flv, yuv420p, 640x480, q=2-31, 800 kb/s, 1k tbn, 24 tbc
    Stream #0.1: Audio: libmp3lame, 44100 Hz, 2 channels, s16, 96 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1

그 후 모바일에서는 다음을 실행합니다.

/usr/bin/ffmpeg -i /var/www/html/cumulus/cc-content/uploads/temp/M2q9rmYjSkElrCJA34Cr.avi -s 480x360 -vb 600k -ac 2 -ab 96k -ar 44    100 -f mp4 /var/www/html/cumulus/cc-content/uploads/mobile/M2q9rmYjSkElrCJA34Cr_temp.mp4

산출:

Input #0, avi, from '/var/www/html/cumulus/cc-content/uploads/temp/M2q9rmYjSkElrCJA34Cr.avi':
  Metadata:
    ISFT            : MEncoder 2:1.0~rc2-0ubuntu13
  Duration: 00:09:56.45, start: 0.000000, bitrate: 9586 kb/s
    Stream #0.0: Video: msmpeg4v2, yuv420p, 1920x1080, 24 tbr, 24 tbn, 24 tbc
    Stream #0.1: Audio: mp3, 48000 Hz, 2 channels, s16, 160 kb/s
Output #0, mp4, to '/var/www/html/cumulus/cc-content/uploads/mobile/M2q9rmYjSkElrCJA34Cr_temp.mp4':
  Metadata:
    encoder         : Lavf52.64.2
    Stream #0.0: Video: mpeg4, yuv420p, 480x360, q=2-31, 600 kb/s, 24 tbn, 24 tbc
    Stream #0.1: Audio: libfaac, 44100 Hz, 2 channels, s16, 96 kb/s

답변1

나는 당신이 사용하고 있는 ffmpeg 버전이 꽤 오래된 것이라고 확신합니다. 다음에서 시스템에 대한 정적 빌드를 다운로드하십시오.공식 홈페이지ffmpeg이전 대신 새 경로를 사용하십시오 /usr/bin/ffmpeg.

예를 들어 정적 빌드를 다운로드한 경우 이를 에 넣고 /usr/local/bin/ffmpeg실행 가능( chmod ugo+x /usr/local/bin/ffmpeg)으로 만든 다음 사용할 수 있습니다.

그런 다음 비디오를 HTML5를 지원하고 모든 종류의 모바일 장치에서 재생할 수 있는 MP4로 변환하려면 다음과 같은 명령이 필요합니다.

ffmpeg -i input.avi -c:v libx264 -c:a aac -strict experimental -b:a 128k \
-crf 23 -profile:v baseline -movflags faststart output.mp4

원하는 품질에 따라 CRF를 변경하거나(18~28이 좋은 범위, 낮을수록 좋음), -b:v 2M예를 들어 2MBit/s의 고정 비트 전송률 인코딩을 선택합니다.

원래 변환에서는 모바일 장치에서 지원해야 하지만 반드시 그럴 필요는 없는 MPEG-4 Part 10 대신 MPEG-4 Part 2 비디오를 사용했습니다. 그게 더 안전해요.

또한 요즘에는 FLV 비디오를 만들 필요가 없습니다. 나는 이 (약간 구식) 형식을 필요로 하는 장치나 재생 기술을 알지 못합니다.

당신도 이것에 관심이 있을 수 있습니다:HTML5 호환 "모두를 위한 비디오"를 얻으려면 어떤 ffmpeg 스크립트가 필요합니까?

관련 정보