Извлечение файлов из видео MPEG
Видео, созданные с помощью Camtasia, можно опубликовать в Интернете, экспортировав проект для TechSmith Smart Player. Видео экспортируется в кодек "H264 - MPEG-4 AVC (part10) (avc1)", и экспорт также включает другие пользовательские файлы XML, JavaScript и SWF, используемые TechSmith Smart Player.
Эти пользовательские файлы также "записываются" в само видео. Например, содержимое файла XML можно просмотреть при открытии видео MP4 в текстовом редакторе. Это позволяет другим службам запрашивать файл MP4 только при загрузке видео Camtasia.
Поэтому мой вопрос, как вы извлекаете текстовые и двоичные файлы из видеофайла MP4? Для этого проекта я ограничен Java, но я счастлив также назвать внешний исполняемый файл.
Я попробовал опцию "-dump_attachment" в FFmpeg, но это не сработало, и у меня нет идей.
C: \ Users \ Desktop> ffmpeg -dump_attachment: t "" -i Getting-Start-Project.mp4 FFmpeg версия N-57448-gc78a416 Copyright (c) 2000-2013 разработчики FFmpeg построен 26 октября 2013 18:08:54 с конфигурацией gcc 4.8.2 (GCC): --enable-gpl --enable-version3 --disable-w32threads --enable-av isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab le-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetyp e --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame -ena ble-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-l ibopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libsp eex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aa cenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavp ack --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib libavutil 52. 47.101 / 52. 47.101 libavcodec 55. 38.101 / 55. 38.101 libavformat 55. 19.104 / 55. 19.104 libavdevice 55. 5.100 / 55. 5.100 libavfilter 3. 89.100 / 3. 89.100 libswscale 2. 5.101 / 2. 5.101 libswresample 0. 17.104 / 0. 17.104 libpostproc 52. 3.100 / 52. 3.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2 из 'Getting-Start-Project.mp4': Метаданные: major_brand: mp42 minor_version: 0 compatibility_brands: isommp42 creation_time: 2013-10-24 15:53:19 Artist: описание: title: Untitled Продолжительность: 00: 05: 41.12, начало: 0.000000, битрейт: 314 кбит / с Поток #0:0(англ): Видео: h264 (базовый уровень) (avc1 / 0x31637661), yuv420p(телевизор), 6 40x360 [SAR 1:1 DAR 16:9], 185 кбит / с, 30 кадров в секунду, 30 тбр, 30 тыс. Тбн, 60 тбк (по умолчанию) Метаданные: creation_time: 2013-10-24 15:53:19 имя обработчика: Mainconcept MP4 Video Media Handler Stream #0:1(англ): аудио: aac (mp4a / 0x6134706D), 44100 Гц, стерео, fltp, 12 5 кбит / с (по умолчанию) Метаданные: creation_time: 2013-10-24 15:53:19 handler_name: Mainconcept MP4 Sound Media Handler Должен быть указан как минимум один выходной файл
Обновление: кажется, что XML содержится в пользовательском атоме UUID, и мне просто нужен способ извлечь это.
Спасибо
1 ответ
Удалось найти способ доступа к UUID Atom/Box с помощью проекта mp4parser
IsoFile isoFile = new IsoFile("project.mp4");
UserBox userbox = isoFile.getBoxes(UserBox.class).get(0);
System.out.println(new String(userbox.getData()));