2013-10-27 3 views
4

Видео, созданные с помощью Camtasia, могут быть доступны в Интернете путем экспорта проекта для TechSmith Smart Player. Видео экспортируется в кодеке «H264 - MPEG-4 AVC (part10) (avc1)», а экспорт также включает в себя другие пользовательские файлы XML, JavaScript и SWF, используемые TechSmith Smart Player.Извлечь файлы из mpeg video

Эти пользовательские файлы также «сжигаются» в самом видео. Например, содержимое файла XML можно просмотреть при открытии видео MP4 в текстовом редакторе. Это позволяет другим службам запрашивать только файл MP4 при загрузке видео Camtasia.

Поэтому мой вопрос заключается в том, как вы извлекаете текстовые и двоичные файлы из видеофайла MP4? Для этого проекта я ограничен Java, но я рад также назвать внешний исполняемый файл.

Я попробовал вариант «-dump_attachment» в FFmpeg, но это не сработало, и я не в идеях.

C:\Users\Desktop>ffmpeg -dump_attachment:t "" -i getting-started-project.mp4 
ffmpeg version N-57448-gc78a416 Copyright (c) 2000-2013 the FFmpeg developers 
    built on Oct 26 2013 18:08:54 with gcc 4.8.2 (GCC) 
    configuration: --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, from 'getting-started-project.mp4': 
    Metadata: 
    major_brand  : mp42 
    minor_version : 0 
    compatible_brands: isommp42 
    creation_time : 2013-10-24 15:53:19 
    artist   : 
    description  : 
    title   : Untitled 
    Duration: 00:05:41.12, start: 0.000000, bitrate: 314 kb/s 
    Stream #0:0(eng): Video: h264 (Baseline) (avc1/0x31637661), yuv420p(tv), 6 
40x360 [SAR 1:1 DAR 16:9], 185 kb/s, 30 fps, 30 tbr, 30k tbn, 60 tbc (default) 
    Metadata: 
     creation_time : 2013-10-24 15:53:19 
     handler_name : Mainconcept MP4 Video Media Handler 
    Stream #0:1(eng): Audio: aac (mp4a/0x6134706D), 44100 Hz, stereo, fltp, 12 
5 kb/s (default) 
    Metadata: 
     creation_time : 2013-10-24 15:53:19 
     handler_name : Mainconcept MP4 Sound Media Handler 
At least one output file must be specified

Update: Похоже XML содержится внутри атома пользовательского UUID, и я просто нужен способ извлечения этого.

Благодаря

+0

[Это] (http://en.wikipedia.org/wiki/ H.264/MPEG-4_AVC) может помочь вам. –

+0

Пожалуйста, покажите команду ffmpeg с '-dump_attachment' и включите полный вывод консоли. – LordNeckbeard

+0

Обновил вопрос, все, что я получаю, - «Должен быть указан хотя бы один выходной файл» –

ответ

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())); 
Смежные вопросы