Intereting Posts
Минимальные версии IOS2 и Android для Android PopupWindow $ BadTokenException: Невозможно добавить окно – токен null недействителен Android.view.InflateException: двоичная строка XML-файла # 12: ошибка раздувания класса <unknown> Динамическое включение или отключение виджета не работает Сохранение децентрализации Android Поиск полосы, изменение цвета пути с желтого на белый Как создать панель инструментов с пользовательской кнопкой слева? Перезагрузка телефона PathPattern для соответствия расширению файла не работает, если существует какой-либо период в другом месте имени файла? Maven – прочитать номер версии из файла свойств Должен ли я использовать JavaCV или Java-библиотеку OpenCV на Android? Как передать два или более аргументов выбора в методе «запрос» Android Lint: игнорировать библиотечные проекты Android: Можно ли динамически изменять цвет рамки EditText? Меню Android с произвольным вложенным списком ListView

Как добавить атом MOOV в файл видео mp4

Я работаю над живым устройством и потоком сервера в Android. Я могу отправлять данные в байтах на сервере, но когда я играю этот файл во время записи на сервере VLC, скажем, что атом MOOV не найден. После многих обходных решений я обнаружил, что MOOV- атом файла mp4 генерируется в конце. Но я должен играть этот файл на сервере, а запись – вживую. Я просматриваю исходный код SPYDROID и SIPDROID, но не работает. Я попытался добавить move atom на серверы с использованием FFMPEG, но не получил никакого успеха. У любого есть идея, как я могу это достичь. Thanx заранее.

Solutions Collecting From Web of "Как добавить атом MOOV в файл видео mp4"

У тебя проблемы. Коробка «moov» является своего рода оглавлением. Если не все содержимое, вы не можете иметь полное оглавление. Ой!

Если вы хотите придерживаться MP4, и если вы пишете файл самостоятельно, вы можете записать файл как так называемый фрагментированный файл MP4. Фрагментированный файл MP4 содержит несколько автономных небольших фрагментов видео – каждый со своим собственным оглавлением. Это позволит вам воспроизвести файл до завершения полной записи.

Если вам не нужно придерживаться MP4, опция должна состоять в том, чтобы записать необработанный поток h264 на сервер. Тогда у вас нет такой таблицы содержания. VLC может воспроизводить сырые потоки h264.

Используйте MP4Box для перемещения атома MOOV при инициации файла и чередования для потока в куске.

MP4Box test.mp4 test.mp4 

Запустите qt_faststart, чтобы переместить атом moov в начало потока.

 qt-faststart in.mp4 out.mp4 

Добавьте в свой gradle этот lib: compile 'net.ypresto.qtfaststartjava: qtfaststart: 0.1.0', а затем

 File input = new File(path + "/input.mp4"); // Your input file File output = new File(path + "/output.mp4"); // Your output file try{ if(!output.exists()) // if there is no output file we'll create one output.createNewFile(); } }catch (IOException e){ Log.e("TAG", e.toString()); } try{ QtFastStart.fastStart(input, output); // Adds moov to your input // Now your output file is ready to stream! }catch (QtFastStart.MalformedFileException m){ Log.e("QT", m.toString()); }catch (QtFastStart.UnsupportedFileException q){ Log.e("QT", q.toString()); }catch (IOException i){ Log.e("QT", i.toString()); } 

Вот и все.

Можно переместить атом moov в начало видеофайла с помощью FFMpeg.

 ffmpeg -i input_video_file.mp4 -vcodec copy -acodec copy -movflags +faststart output_video_file.mp4