Нужно разработать переформатирование видеофайлов в iOS приложении

2 000 руб. за проект • наличный расчёт, безналичный расчёт, электронные деньги
24 сентября 2016, 05:47 • 0 откликов • 23 просмотра
Нужно сделать на основе уже имеющейся заготовки простую программу с непростой функцией (хотя для как, возможно). Суть этой функции будет заключаться в привидении видеофайла в нормальный формат MP4 путем прописывания ему нужных заголовков.

Данная программа прототип. Она должна показать заказчику саму принциальную возможность осуществления данной процедуры. Поэтому, никакого интерфейса upload'а видеофайлов предусматривать не нужно. Видеофайл уже встраивается в проект как ресурс.

ПОДРОБНОСТИ

1) Заготовка программы прилагается. Это работоспособная программа, которую можно запустить в эмаляторе. Написана в Xcode 8 и с синтаксисом уже Swift 3 (но вам будет несложно просто обновить Xcode до последней 8ой версии).

https://github.com/Chingiz-888/CGIVideoPlayer
ВНИМАНИЕ: тот самый badVideo.mp4 я прилагаю и тут (файл loadfile.cgi), а также он есть в проекте в репозитории

2) Как она работает. Есть изначальный файл loadfile.mp4. Уже известно, что этот файл просто сырой AVC/H.264 поток и на декстопном компьютере он легко может быть привиден к нормальному MP4 виду с помощью той же MKVToolNix 9.4.2 http://www.bunkus.org/videotools/mkvtoolnix/ )
Известно, что у него только трабла в отсутствии заголовков или может чего еще, что нужно просто добавить в файл

3) После того как он орендериться (нажатие кнопки "Render"), он должен проиграться по щелчку кнопки Play rendered file. Функция сохранения отрендеренного файла, обработчики нажатий, AVPlayer из библиотеки AVKit - все это уже прикручено и работает
В качестве примера, вы можете выбрать "обычный MP4" файл и по логам и по поведению программы увидеть, что он будет проигрываться и в изначельном виде и в отрендеренном.


ОТ ПРОГРАММИСТА требуется лишь написать собственно функцию обработки файла. Но как именно обработать можно понять, если разбираться в том, а какие должны быть заголовки у MP4 файла

Попытка отконвертировать функцией из той же библиотеки AVKit закончилась неудачей

%@ Optional(Error Domain=AVFoundationErrorDomain Code=-11800 "The operation could not be completed" UserInfo={NSLocalizedFailureReason=An unknown error occurred (-12894), NSLocalizedDescription=The operation could not be completed, NSURL=file:/// Bundle/Application/36332EEA-F977-4083-9ED5-F8E2FE1EDD15/PlayCGIVideo.app/badVideo.mp4, NSUnderlyingError=0x600000258150 {Error Domain=NSOSStatusErrorDomain Code=-12894 "(null)"}})


Скорей всего нужно будет открывать файл как NSData, руками там что-то править, записывать обратно
Файлы