2016-07-14 9 views
0

Ich habe ein Video aus einer Reihe von Bildern erstellt.FFMPEG: benutzerdefinierte Sequenz eingegeben Bilder

Der Befehl wie folgt aussehen:

ffmpeg -i bg.jpeg -i img_%d.png -filter_complex overlay=5:H-h-5[b]-shortest testvid.mp4 

Problem:

Die Eingangs -i img_%d.png bedeutet img_0.png, img_1.png, img_2.png, ...

Aber ich habe benutzerdefinierte Reihenfolge wie folgt aus: {img_0.png, img_1.png, img_1.png, img_2.png, img_1.png, img5.png, img_4.png}

Frage:

Kann ich meine Bildsequenz in den Eingang von ffmpeg einfügen?

Aktualisiert

cmd:

ffmpeg -i bg.jpeg -f concat -fflags +genpts -i test.txt -filter_complex overlay=5:H-h-5 -shortest testvid.mp4 

Ausgang:

ffmpeg version 3.1.1 Copyright (c) 2000-2016 the FFmpeg developers 
    built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.3) 
    configuration: --enable-gpl --enable-libx264 --enable-libfreetype 
    libavutil  55. 28.100/55. 28.100 
    libavcodec  57. 48.101/57. 48.101 
    libavformat 57. 41.100/57. 41.100 
    libavdevice 57. 0.101/57. 0.101 
    libavfilter  6. 47.100/6. 47.100 
    libswscale  4. 1.100/4. 1.100 
    libswresample 2. 1.100/2. 1.100 
    libpostproc 54. 0.100/54. 0.100 
Input #0, image2, from 'bg.jpeg': 
    Duration: 00:00:00.04, start: 0.000000, bitrate: 47329 kb/s 
    Stream #0:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 600x800 [SAR 1:1 DAR 3:4], 25 tbr, 25 tbn, 25 tbc 
Input #1, concat, from 'test.txt': 
    Duration: N/A, start: 0.000000, bitrate: N/A 
    Stream #1:0: Video: png, pal8(pc), 200x200, 25 tbr, 25 tbn, 25 tbc 
File 'testvid.mp4' already exists. Overwrite ? [y/N] y 
[swscaler @ 0x2a18360] deprecated pixel format used, make sure you did set range correctly 
[libx264 @ 0x2a05d80] using SAR=1/1 
[libx264 @ 0x2a05d80] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2 
[libx264 @ 0x2a05d80] profile High, level 3.1 
[libx264 @ 0x2a05d80] 264 - core 148 r2705 3f5ed56 - H.264/MPEG-4 AVC codec - Copyleft 2003-2016 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 
[mp4 @ 0x2a04b20] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead. 
Output #0, mp4, to 'testvid.mp4': 
    Metadata: 
    encoder   : Lavf57.41.100 
    Stream #0:0: Video: h264 (libx264) ([33][0][0][0]/0x0021), yuv420p, 600x800 [SAR 1:1 DAR 3:4], q=-1--1, 25 fps, 12800 tbn, 25 tbc (default) 
    Metadata: 
     encoder   : Lavc57.48.101 libx264 
    Side data: 
     cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1 
Stream mapping: 
    Stream #0:0 (mjpeg) -> overlay:main 
    Stream #1:0 (png) -> overlay:overlay 
    overlay -> Stream #0:0 (libx264) 
Press [q] to stop, [?] for help 
[concat @ 0x29e2400] DTS -230575710986777 < 0 out of order 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
DTS -230575710986777, next:40000 st:0 invalid dropping 
PTS -230575710986777, next:40000 invalid dropping st:0 
frame= 4 fps=0.0 q=-1.0 Lsize=  39kB time=00:00:00.04 bitrate=8050.9kbits/s dup=0 drop=65 speed=0.516x  
video:39kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.222729% 
[libx264 @ 0x2a05d80] frame I:1  Avg QP:24.64 size: 37536 
[libx264 @ 0x2a05d80] frame P:1  Avg QP:27.18 size: 1085 
[libx264 @ 0x2a05d80] frame B:2  Avg QP:29.93 size: 73 
[libx264 @ 0x2a05d80] consecutive B-frames: 25.0% 0.0% 75.0% 0.0% 
[libx264 @ 0x2a05d80] mb I I16..4: 1.7% 86.1% 12.2% 
[libx264 @ 0x2a05d80] mb P I16..4: 0.0% 0.0% 0.0% P16..4: 1.7% 1.3% 1.5% 0.0% 0.0% skip:95.5% 
[libx264 @ 0x2a05d80] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 2.4% 0.0% 0.0% direct: 0.0% skip:97.6% L0:62.6% L1:37.4% BI: 0.0% 
[libx264 @ 0x2a05d80] 8x8 transform intra:86.1% inter:33.9% 
[libx264 @ 0x2a05d80] coded y,uvDC,uvAC intra: 91.5% 84.4% 38.5% inter: 0.6% 0.4% 0.1% 
[libx264 @ 0x2a05d80] i16 v,h,dc,p: 9% 12% 3% 76% 
[libx264 @ 0x2a05d80] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 24% 19% 17% 8% 4% 5% 5% 7% 10% 
[libx264 @ 0x2a05d80] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 22% 18% 10% 10% 9% 7% 10% 8% 7% 
[libx264 @ 0x2a05d80] i8c dc,h,v,p: 45% 21% 26% 8% 
[libx264 @ 0x2a05d80] Weighted P-Frames: Y:0.0% UV:0.0% 
[libx264 @ 0x2a05d80] ref B L0: 84.2% 15.8% 
[libx264 @ 0x2a05d80] kb/s:1938.35 
+0

Warum kopieren Sie diese Dateien nicht in ein temporäres Verzeichnis und benennen sie mit der von Ihnen benötigten Sequenz? Wie, 'cp img_2.png img_3.png',' cp img_1.png img_2.png', usw.? – pah

+0

Ich denke darüber nach, meine Sequenz ist etwa 100-200 Dateien, es ist nicht der beste Weg. Aber wenn es für einen anderen unmöglich ist, ist es die einzige Lösung ... –

Antwort

1

Sie können die Concat demuxer mit der benutzerdefinierten Reihenfolge verwenden.

zunächst eine Textdatei erstellen:

file 'img_0.png' 
file 'img_1.png' 
file 'img_1.png' 
file 'img_2.png' 
file 'img_1.png' 
file 'img5.png' 
file 'img_4.png' 

Dann laufen

ffmpeg -i bg.jpeg -f concat -r 25 -i list.txt -filter_complex "overlay=5:H-h-5" -shortest out.mp4 

bearbeiten: Für PNG und die meisten anderen Bildformate, sollte r ausdrücklich eine Dauer für jede initialisieren angegeben werden Bildeintrag in der Liste.

+0

Vielen Dank, aber es ist nicht Arbeit. Meine Ausgabe [concat @ 0x349a400] DTS -230575710986777 <0 außer Betrieb DTS -230575710986777, nächstes: 40000 st: 0 ungültig fallen PTS -230575710986777, nächstes: 40000 ungültig fallen st: 0 DTS -230575710986777, nächstes: 40000 st: 0 ungültiges Löschen DTS -230575710986777, nächstes: 40000 st: 0 ungültiges Löschen Rahmen = 4 fps = 0,0 q = -1,0 Lsize = 39kB Zeit = 00: 00: 00.04 Bitrate = 8050.9kbits/s dup = 0 drop = 65 Geschwindigkeit = 0,45x Video: 39kB Audio: 0kB Untertitel: 0kB andere Streams: 0kB globale Header: 0kB Muxing Overhead: 2.222729% –

+0

das gleiche Ergebnis ... –

+0

Zeigen Sie die volle Konsolenausgabe. – Mulvya

Verwandte Themen