1

В моей системе CentoS 6 x64 установлен FFMPEG:

FFmpeg version 0.6.5, Copyright (c) 2000-2010 the FFmpeg developers
  built on Jan 29 2012 17:52:15 with gcc 4.4.5 20110214 (Red Hat 4.4.5-6)
  configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --incdir=/usr/include --disable-avisynth --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC' --enable-avfilter --enable-avfilter-lavf --enable-libdc1394 --enable-libdirac --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-libgsm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libx264 --enable-gpl --enable-nonfree --enable-postproc --enable-pthreads --enable-shared --enable-swscale --enable-vdpau --enable-version3 --enable-x11grab
  libavutil     50.15. 1 / 50.15. 1
  libavcodec    52.72. 2 / 52.72. 2
  libavformat   52.64. 2 / 52.64. 2
  libavdevice   52. 2. 0 / 52. 2. 0
  libavfilter    1.19. 0 /  1.19. 0
  libswscale     0.11. 0 /  0.11. 0
  libpostproc   51. 2. 0 / 51. 2. 0

Я пытаюсь объединить видео, загруженные с мобильных телефонов, - это может быть любое соединение с Android и iPhone. Этот процесс, кажется, работает хорошо для видео iPhone, но для видео Android (3GP4), он продолжает копировать те же кадры и продвигается крайне медленно:

[root@ks383641 html]# ./interleave.sh /mnt/content/09zmWtIt8EvimTIy.mp4 /mnt/content/09zmWtIt8EvimTIy.mp4 out.mp4
MultiMedia Concat Script v1.3 (mmcat) - A script to concatenate multiple multimedia files.
Based on FFmpeg - www.ffmpeg.org
Don't forget to edit this script and change EXTRA_OPTIONS

FFmpeg version 0.6.5, Copyright (c) 2000-2010 the FFmpeg developers
  built on Jan 29 2012 17:52:15 with gcc 4.4.5 20110214 (Red Hat 4.4.5-6)
  configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --incdir=/usr/include --disable-avisynth --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC' --enable-avfilter --enable-avfilter-lavf --enable-libdc1394 --enable-libdirac --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-libgsm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libx264 --enable-gpl --enable-nonfree --enable-postproc --enable-pthreads --enable-shared --enable-swscale --enable-vdpau --enable-version3 --enable-x11grab
  libavutil     50.15. 1 / 50.15. 1
  libavcodec    52.72. 2 / 52.72. 2
  libavformat   52.64. 2 / 52.64. 2
  libavdevice   52. 2. 0 / 52. 2. 0
  libavfilter    1.19. 0 /  1.19. 0
  libswscale     0.11. 0 /  0.11. 0
  libpostproc   51. 2. 0 / 51. 2. 0
[u16le @ 0xff3690]Estimating duration from bitrate, this may be inaccurate
Input #0, u16le, from '/tmp/mcs_a_all':
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0.0: Audio: pcm_s16le, 44100 Hz, 2 channels, s16, 1411 kb/s
[yuv4mpegpipe @ 0xffce20]Estimating duration from bitrate, this may be inaccurate
Input #1, yuv4mpegpipe, from '/tmp/mcs_v_all':
  Duration: N/A, bitrate: N/A
    Stream #1.0: Video: rawvideo, yuv420p, 1920x1080, 90k tbr, 90k tbn, 90k tbc
File 'out.mp4' already exists. Overwrite ? [y/N] y
[libx264 @ 0x1007a90]MB rate (734400000) > level limit (983040)
[libx264 @ 0x1007a90]using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2
[libx264 @ 0x1007a90]profile Constrained Baseline, level 5.1
[libx264 @ 0x1007a90]264 - core 107 - H.264/MPEG-4 AVC codec - Copyleft 2003-2010 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0x1:0 me=dia subme=0 psy=1 psy_rd=0.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=4 sliced_threads=0 nr=0 decimate=1 interlaced=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=23.0 qcomp=0.60 qpmin=10 qpmax=51 qpstep=4 ip_ratio=1.41 aq=0
Output #0, mp4, to 'out.mp4':
  Metadata:
    encoder         : Lavf52.64.2
    Stream #0.0: Video: libx264, yuv420p, 1920x1080, q=10-51, 200 kb/s, 90k tbn, 90k tbc
    Stream #0.1: Audio: libfaac, 44100 Hz, 2 channels, s16, 128 kb/s
Stream mapping:
  Stream #1.0 -> #0.0
  Stream #0.0 -> #0.1
Press [q] to stop encoding
frame= 1662 fps=239 q=-1.0 Lsize=     378kB time=0.02 bitrate=167700.6kbits/s dup=0 drop=17    
video:364kB audio:0kB global headers:0kB muxing overhead 3.895104%
[libx264 @ 0x1007a90]frame I:7     Avg QP:18.29  size: 45202
[libx264 @ 0x1007a90]frame P:1655  Avg QP:21.00  size:    34
[libx264 @ 0x1007a90]mb I  I16..4: 77.0%  0.0% 23.0%
[libx264 @ 0x1007a90]mb P  I16..4:  0.0%  0.0%  0.0%  P16..4:  0.0%  0.0%  0.0%  0.0%  0.0%    skip:99.9%
[libx264 @ 0x1007a90]coded y,uvDC,uvAC intra: 20.0% 35.7% 8.8% inter: 0.0% 0.0% 0.0%
[libx264 @ 0x1007a90]i16 v,h,dc,p: 72% 17%  6%  5%
[libx264 @ 0x1007a90]i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 24% 30% 25%  2%  4%  2%  5%  2%  6%
[libx264 @ 0x1007a90]i8c dc,h,v,p: 56% 22% 16%  6%
[libx264 @ 0x1007a90]kb/s:161117.11
Received signal 2: terminating.
^C

Я использую следующий скрипт. Есть ли особый способ объединения видео для Android? Если так, как я могу это сделать?

2 ответа2

4

Во-первых, получите более свежую версию ffmpeg. Затем вместо этого сценария используйте демультиплексор concat, как описано на вики-странице ffmpeg, на которую вы ссылаетесь ; если это не сработает, попробуйте фильтр concat (с той же страницы).

Concat Demuxer

Во-первых, создайте файл с именем нечто вроде inputs.txt , содержащее такие строки:

file '/path/to/file1'
file '/path/to/file2'
file '/path/to/file3'

Затем используйте демультиплексор так:

ffmpeg -f concat -i inputs.txt -c copy output.mp4
## or something like:
ffmpeg -f concat -i inputs.txt -c:v libx264 -preset veryfast -crf 22 -c:a copy output.mp4
3

Вы используете очень старую версию FFmpeg, которая, вероятно, не может правильно обрабатывать этот формат файла. Обновите FFmpeg до последней версии, которую можно найти на странице загрузки FFmpeg

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .