2016-04-29 6 views
0

Я просмотрел все, но я пока не нашел прямого ответа на мой вопрос.Параметры вывода FFMpeg HLS, необходимые для утверждения Apple App Store

Каковы минимальные требуемые параметры вывода и сегментации командной строки FFMpeg, которые приведут к минимальному набору всех необходимых комбинаций файлов HLS .m3u8 и .ts, необходимых для утверждения Apple App Store для видеофайла, воспроизводимого в приложении ?

Примечание: есть более старые Q & Как здесь, были написаны до того, как FFMpeg добавила собственную сегментацию для HLS. Поэтому я ищу 100% решение FFMpeg для вывода того, что ищет Apple. Мне не нужен формат ввода для этого ответа, так как FFMpeg читает большинство файлов, которые мы хотели бы использовать.

Обратите внимание, что в правильном ответе следует учитывать настройку максимального требования к ширине полосы для всего потока и т. Д., Которые Apple ищет.

Бьюсь об заклад, кто-то там уже получил это, возможно, даже работает в каком-то коде, но я хочу, чтобы он был опубликован, чтобы сохранить остальных нас некоторое время.

Спасибо!

ответ

0

Минимум - это один видеопоток и один поток аудио в 64 k аудио, с h.264 и aac. Тем не менее, это то, что я использую, 180p + 360p + 480p + 720p + 1080p + 64aac, просто соедините нужные вам детали.

Я получаю видеоролики всех размеров, поэтому мои кодовые колодки или клипы все до 16: 9, удалите его, если он вам не нужен.

Кроме того, вам необходимо сгенерировать мастер m3u8, который указывает на остальные.

[любой] -> h.264 + AAC

ffmpeg -y -async 1 -vsync -1 -analyzeduration 999999999 -i INPUT.FILE 
#180p -movflags faststart -keyint_min 30 -x264opts "keyint=30:min-keyint=30:no-scenecut" -g 30 -filter:v "scale=iw*min(320/iw\,180/ih):ih*min(320/iw\,180/ih), pad=320:180:(320-iw*min(320/iw\,180/ih))/2:(180-ih*min(320/iw\,180/ih))/2" -r:v 30 -s 320x180 -b:v 320k -c:v libx264 -pix_fmt yuv420p -profile:v baseline -level 3.0 -c:a libfdk_aac -ac 2 -ar 48000 -b:a 64k OUTPUT-180.MP4 
#360p -movflags faststart -keyint_min 30 -x264opts "keyint=30:min-keyint=30:no-scenecut" -g 30 -filter:v "scale=iw*min(640/iw\,360/ih):ih*min(640/iw\,360/ih), pad=640:360:(640-iw*min(640/iw\,360/ih))/2:(360-ih*min(640/iw\,360/ih))/2" -r:v 30 -s 640x360 -b:v 640k -c:v libx264 -pix_fmt yuv420p -profile:v baseline -level 3.0 -c:a libfdk_aac -ac 2 -ar 48000 -b:a 96k OUTPUT-360.MP4 
#480p -movflags faststart -keyint_min 30 -x264opts "keyint=30:min-keyint=30:no-scenecut" -g 30 -filter:v "scale=iw*min(854/iw\,480/ih):ih*min(854/iw\,480/ih), pad=854:480:(854-iw*min(854/iw\,480/ih))/2:(480-ih*min(854/iw\,854/ih))/2" -r:v 30 -s 854x480 -b:v 680k -c:v libx264 -pix_fmt yuv420p -profile:v baseline -level 3.0 -c:a libfdk_aac -ac 2 -ar 48000 -b:a 96k OUTPUT-480.MP4 
#720p -movflags faststart -keyint_min 30 -x264opts "keyint=30:min-keyint=30:no-scenecut" -g 30 -filter:v "scale=iw*min(1280/iw\,720/ih):ih*min(1280/iw\,720/ih), pad=1280:720:(1280-iw*min(1280/iw\,720/ih))/2:(720-ih*min(1280/iw\,720/ih))/2" -r:v 30 -s 1280x720 -b:v 1280k -c:v libx264 -pix_fmt yuv420p -profile:v baseline -level 3.1 -c:a libfdk_aac -ac 2 -ar 48000 -b:a 128k OUTPUT-720.MP4 
#1080p -movflags faststart -keyint_min 30 -x264opts "keyint=30:min-keyint=30:no-scenecut" -g 30 -filter:v "scale=iw*min(1920/iw\,1080/ih):ih*min(1920/iw\,1080/ih), pad=1920:1080:(1920-iw*min(1920/iw\,1080/ih))/2:(1080-ih*min(1920/iw\,1080/ih))/2" -r:v 30 -s 1920x1080 -b:v 1640k -c:v libx264 -pix_fmt yuv420p -profile:v baseline -level 4.0 -c:a libfdk_aac -ac 2 -ar 48000 -b:a 128k OUTPUT-1080.MP4 
#aac -c:a libfdk_aac -ac 2 -ar 48000 -b:a 64k OUTPUT-AAC.AAC 

MP4 -> TS

#180p ffmpeg -y -async 1 -vsync -1 -analyzeduration 999999999 -i OUTPUT-180.MP4 -codec copy -map 0 -f segment -segment_list OUTPUT-180.M3U8 -segment_time 10 -segment_list_type m3u8 -bsf:v h264_mp4toannexb SEGMENT-180%05d.TS 
#360p ffmpeg -y -async 1 -vsync -1 -analyzeduration 999999999 -i OUTPUT-360.MP4 -codec copy -map 0 -f segment -segment_list OUTPUT-360.M3U8 -segment_time 10 -segment_list_type m3u8 -bsf:v h264_mp4toannexb SEGMENT-360%05d.TS 
#480p ffmpeg -y -async 1 -vsync -1 -analyzeduration 999999999 -i OUTPUT-480.MP4 -codec copy -map 0 -f segment -segment_list OUTPUT-480.M3U8 -segment_time 10 -segment_list_type m3u8 -bsf:v h264_mp4toannexb SEGMENT-480%05d.TS 
#720p ffmpeg -y -async 1 -vsync -1 -analyzeduration 999999999 -i OUTPUT-720.MP4 -codec copy -map 0 -f segment -segment_list OUTPUT-720.M3U8 -segment_time 10 -segment_list_type m3u8 -bsf:v h264_mp4toannexb SEGMENT-720%05d.TS 
#1080p ffmpeg -y -async 1 -vsync -1 -analyzeduration 999999999 -i OUTPUT-1080.MP4 -codec copy -map 0 -f segment -segment_list OUTPUT-1080.M3U8 -segment_time 10 -segment_list_type m3u8 -bsf:v h264_mp4toannexb SEGMENT-1080%05d.TS 
#aac ffmpeg -y -async 1 -vsync -1 -analyzeduration 999999999 -i OUTPUT-AAC.AAC -codec copy -map 0 -f segment -segment_list OUTPUT-AAC.M3U8 -segment_time 10 -segment_list_type m3u8 -bsf:v h264_mp4toannexb SEGMENT-AAC%05d.TS 

 Смежные вопросы

  • Нет связанных вопросов^_^