Извлечение файлов из видео 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()));
Другие вопросы по тегам