2012-04-24 3 views
0

У меня есть файл mp4, отрезанный от потока H.264/AAC с Wowza Media Server. После резки, файл был вынужден формате MP4 с помощью следующей команды:FFmpeg: Remux f4v отрезан от потока до mp4

ffmpeg -i wowza_output_file -vcodec copy -acodec copy -f mp4 -y wowza_output_file_copy 

Оттуда я переименовал его в test_f4v.mp4 и взял ffprobe, чтобы посмотреть на файл:

ffprobe version 0.8, Copyright (c) 2007-2011 the FFmpeg developers 
    built on Jul 20 2011 13:32:19 with gcc 4.4.3 
    configuration: --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-libfaac --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 
    libavutil 51. 9. 1/51. 9. 1 
    libavcodec 53. 7. 0/53. 7. 0 
    libavformat 53. 4. 0/53. 4. 0 
    libavdevice 53. 1. 1/53. 1. 1 
    libavfilter 2. 23. 0/2. 23. 0 
    libswscale 2. 0. 0/2. 0. 0 
    libpostproc 51. 2. 0/51. 2. 0 
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test_f4v.mp4': 
    Metadata: 
    major_brand  : f4v 
    minor_version : 0 
    compatible_brands: isommp42m4v 
    creation_time : 2012-04-23 12:36:06 
    Duration: 01:00:01.84, start: 0.000000, bitrate: 2004 kb/s 
    Stream #0.0(eng): Video: h264 (Baseline), yuv420p, 854x480 [PAR 1:1 DAR 427:240], 1903 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc 
    Metadata: 
     creation_time : 2012-04-23 12:36:06 
    Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, s16, 96 kb/s 
    Metadata: 
     creation_time : 2012-04-23 12:36:06 

Теперь есть проблема. Мне нужен файл, который имеет следующий мета-данные:

major_brand  : mp42 
compatible_brands: isom 

Есть ли способ ремультиплексирование mp4 файл, чтобы получить major_brand и compatible_brands к описанным значений с FFmpeg?

+0

Просто голосуйте за закрытие, потому что это может быть не в тему (это не из-за темы, я думаю, потому что я хочу использовать это в программе) и не сказать, какой сайт SE лучше, не очень целесообразно. Скажите, где поставить вопрос, и я удаляю его здесь. – Martin

ответ

0

Вы можете установить произвольные метаданные, используя флаг -metadata для FFmpeg.

the man page От:

-metadata[:metadata_specifier] key=value (output,per-metadata) 
     Set a metadata key/value pair. 

     An optional metadata_specifier may be given to set metadata on 
     streams or chapters. See "-map_metadata" documentation for details. 

     This option overrides metadata set with "-map_metadata". It is also 
     possible to delete metadata by using an empty value. 

     For example, for setting the title in the output file: 

       ffmpeg -i in.avi -metadata title="my title" out.flv 

     To set the language of the first audio stream: 

       ffmpeg -i INPUT -metadata:s:a:1 language=eng OUTPUT 
+0

Не думайте, что перезапись метаданных решает проблему. Мне действительно нужно переделать их из f4v в mp4. – Martin

+0

«major_brand' /' compatible_brands »отличаются от формата и не обязательно требуют перекодирования. См. [Здесь] (http://www.ftyps.com/what.html) для описания и обратите внимание, что ['mp42'] (http://mp4ra.org/specs.html#MP4V2) и' isom' являются очень универсальными, поскольку бренды идут, поэтому планка не является высокой для их использования. – blahdiblah

0

Я много о Wowza форматирования не знаю, но так как вы просто скопировать фактические данные потока и изменить только упаковку, вы можете попробовать HandBrakeCLI для преобразования в mp4 , По умолчанию он устанавливает major_brand в mp42 и compatible_brands в mp42isomavc1. Возможно, достаточно близко?

+0

И как установить основной бренд в mp42 через ffmpeg? –