-4

I am trying to add 2 different images into a video with ffmpeg.

image1.jpg should show the first 10 seconds of the movie and youtubeLOL.png should show the next 6 minutes of the video.

So the command should tell us also to repeat the pictures to get a length for 6 minutes and 10 seconds. How can i do this? I have tried this:

(It's not even working)

 passthru("ffmpeg -f image2 -loop 1 -vframes 100 -i /home/psafari/public_html/youtube_images/movie_" . $id . ".jpg -vcodec mpeg4 /home/psafari/public_html/youtube_videos/movie_" . time().".avi");

Here is output:

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 

Invalid value '1' for option 'loop'

output memcode

 MEncoder SVN-r31628-4.4.6 (C) 2000-2010 MPlayer Team
 get_path("config") problem
 success: format: 0  data: 0x0 - 0x1251b
 libavformat file format detected.
 [lavf] stream 0: video (h264), -vid 0
 VIDEO:  [H264]  540x800  24bpp  25.000 fps  116.3 kbps (14.2 kbyte/s)
 [V] filefmt:44  fourcc:0x34363248  size:540x800  fps:25.000  ftime:=0.0400
 videocodec: framecopy (540x800 24bpp fourcc=34363248)
 Writing header...
 ODML: Aspect information not (yet?) available or unspecified, not writing vprp header.
 Writing header...
 ODML: Aspect information not (yet?) available or unspecified, not writing vprp header.
 Pos:   0.0s      1f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
 Pos:   0.1s      2f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
 Pos:   0.1s      3f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
 Pos:   0.2s      4f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
 Pos:   0.2s      5f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
 Pos:   0.2s      6f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
 Pos:   0.3s      7f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
 Pos:   0.3s      8f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
 Pos:   0.4s      9f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
 Pos:   0.4s     10f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
 Pos:   0.4s     11f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
 Pos:   0.5s     12f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
 Pos:   0.5s     13f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
 Pos:   0.6s     14f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
 Pos:   0.6s     15f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
 Pos:   0.6s     16f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
 Pos:   0.7s     17f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
 Pos:   0.7s     18f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
 Pos:   0.8s     19f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
 Pos:   0.8s     20f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
 Pos:   0.8s     21f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
 Pos:   0.9s     22f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
 Pos:   0.9s     23f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
 Pos:   1.0s     24f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
      Pos:   1.0s     25f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
 Pos:   1.0s     26f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [538:0]
 Pos:   1.1s     27f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [518:0]
 Pos:   1.1s     28f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [500:0]
 Pos:   1.2s     29f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [483:0]
 Pos:   1.2s     30f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [467:0]
 Pos:   1.2s     31f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [452:0]
 Pos:   1.3s     32f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [438:0]
 Pos:   1.3s     33f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [425:0]
 Pos:   1.4s     34f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [413:0]
 Pos:   1.4s     35f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [401:0]
 Pos:   1.4s     36f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [390:0]
 Pos:   1.5s     37f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [380:0]
 Pos:   1.5s     38f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [370:0]
 Pos:   1.6s     39f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [360:0]
 Pos:   1.6s     40f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [351:0]
 Pos:   1.6s     41f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [343:0]
 Pos:   1.7s     42f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [335:0]
 Pos:   1.7s     43f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [327:0]
 Pos:   1.8s     44f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [320:0]
 Pos:   1.8s     45f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [313:0]
 Pos:   1.8s     46f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [306:0]
 Pos:   1.9s     47f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [300:0]
 Pos:   1.9s     48f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [294:0]
 Pos:   2.0s     49f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [288:0]
 Pos:   2.0s     50f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [282:0]
 Pos:   2.0s     51f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [277:0]
 Pos:   2.1s     52f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [272:0]
 Pos:   2.1s     53f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [266:0]
 Pos:   2.2s     54f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [262:0]
 Pos:   2.2s     55f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [257:0]
 Pos:   2.2s     56f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [252:0]
 Pos:   2.3s     57f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [248:0]
 Pos:   2.3s     58f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [244:0]
 Pos:   2.4s     59f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [240:0]
 Pos:   2.4s     60f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [236:0]
 Pos:   2.4s     61f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [232:0]
 Pos:   2.5s     62f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [229:0]
 Pos:   2.5s     63f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [225:0]
 Pos:   2.6s     64f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [222:0]
 Pos:   2.6s     65f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [218:0]
 Pos:   2.6s     66f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [215:0]
 Pos:   2.7s     67f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [212:0]
 Pos:   2.7s     68f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [209:0]
 Pos:   2.8s     69f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [206:0]
 Pos:   2.8s     70f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [203:0]
 Pos:   2.8s     71f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [200:0]
 Pos:   2.9s     72f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [197:0]
 Pos:   2.9s     73f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [195:0]
 Pos:   3.0s     74f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [192:0]
 Pos:   3.0s     75f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [190:0]
 Pos:   3.0s     76f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [187:0]
 Pos:   3.1s     77f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [185:0]
 Pos:   3.1s     78f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [183:0]
 Pos:   3.2s     79f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [180:0]
 Pos:   3.2s     80f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [178:0]
 Pos:   3.2s     81f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [176:0]
 Pos:   3.3s     82f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [174:0]
 Pos:   3.3s     83f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [172:0]
 Pos:   3.4s     84f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [170:0]
 Pos:   3.4s     85f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [168:0]
 Pos:   3.4s     86f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [166:0]
 Pos:   3.5s     87f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [164:0]
 Pos:   3.5s     88f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [162:0]
 Pos:   3.6s     89f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [161:0]
 Pos:   3.6s     90f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [159:0]
 Pos:   3.6s     91f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [157:0]
 Pos:   3.7s     92f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [156:0]
 Pos:   3.7s     93f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [154:0]
 Pos:   3.8s     94f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [152:0]
 Pos:   3.8s     95f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [151:0]
 Pos:   3.8s     96f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [149:0]
 Pos:   3.9s     97f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [148:0]
 Pos:   3.9s     98f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [146:0]
 Pos:   4.0s     99f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [145:0]
 Pos:   4.0s    100f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [144:0]
 Pos:   4.0s    101f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [142:0]
 Pos:   4.1s    102f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [141:0]
 Pos:   4.1s    103f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [140:0]
 Pos:   4.2s    104f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [138:0]
 Pos:   4.2s    105f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [137:0]
 Pos:   4.2s    106f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [136:0]
 Pos:   4.3s    107f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [135:0]
 Pos:   4.3s    108f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [133:0]
 Pos:   4.4s    109f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [132:0]
 Pos:   4.4s    110f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [131:0]
 Pos:   4.4s    111f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [130:0]
 Pos:   4.5s    112f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [129:0]
 Pos:   4.5s    113f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [128:0]
 Pos:   4.6s    114f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [127:0]
 Pos:   4.6s    115f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [126:0]
 Pos:   4.6s    116f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [124:0]
 Pos:   4.7s    117f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [123:0]
 Pos:   4.7s    118f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [122:0]
 Pos:   4.8s    119f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [121:0]
 Pos:   4.8s    120f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [120:0]
 Pos:   4.8s    121f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [119:0]
 Pos:   4.9s    122f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [119:0]
 Pos:   4.9s    123f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [118:0]
 Pos:   5.0s    124f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [117:0]
 Pos:   5.0s    125f (100%)  0.00fps Trem:   0min   0mb  A-V:0.000 [116:0]
 success: format: 0  data: 0x0 - 0x9daf8
 libavformat file format detected.
 [lavf] stream 0: video (h264), -vid 0
 VIDEO:  [H264]  640x400  24bpp  25.000 fps   21.8 kbps ( 2.7 kbyte/s)
 [V] filefmt:44  fourcc:0x34363248  size:640x400  fps:25.000  ftime:=0.0400
 videocodec: framecopy (540x800 24bpp fourcc=34363248)
 videocodec: framecopy (640x400 24bpp fourcc=34363248)

 All video files must have identical fps, resolution, and codec for -ovc copy.

 Exiting...
Emii Khaos
  • 9,983
  • 3
  • 34
  • 57
jesper
  • 1
  • 6

1 Answers1

2

Assuming you have a set of images named picture1, picture2 and so on saved somewhere in your disk you can use shell_exec to invoke ffmpeg

ffmpeg can convert your images in video with a sintax similar this one

ffmpeg -i picture1%d.jpg -vcodec mpeg4 myConvertedMovie.avi

the problem is that I don't think it's possible to set the duration of each picture individually like you have asked

EDIT:

You can set the duration using -loop 1 -vframes NUMBER_OF_FRAMES so for example a 100frame video will be

ffmpeg -f image2 -loop 1 -vframes 100 -i /home/psafari/public_html/common/images/icon3.png -vcodec mpeg4 /home/psafari/public_html/" . time().".avi

For the second question, I think that the only way is to convert every picture in a video with it's own length and merge them together later.

Marco Martinelli
  • 892
  • 2
  • 14
  • 27
  • Please check post again! thanks! – jesper Jun 23 '13 at 21:36
  • Great thanks, now we just need to set a new image after 10 seconds - how is that possible? – jesper Jun 23 '13 at 21:54
  • http://ffmpeg.org/ffmpeg.html – r043v Jun 23 '13 at 21:56
  • This doesn't work, Marco :( ffmpeg -f /home/psafari/public_html/youtubeLOL.png -loop 1 -vframes 100 -i /home/psafari/public_html/youtube_images/movie_" . $id . ".jpg -vcodec mpeg4 /home/psafari/public_html/youtube_videos/" . time().".avi" – jesper Jun 23 '13 at 22:07
  • 1
    uhm.. sorry but `-f image2` is the format, it's not a second image – Marco Martinelli Jun 23 '13 at 22:09
  • Wierd, not working either. – jesper Jun 23 '13 at 22:19
  • I've just tried with `ffmpeg -f image2 -loop 1 -vframes 100 -i test.jpg -vcodec mpeg4 test.avi` and it's working as expected. Can you post the error message? – Marco Martinelli Jun 23 '13 at 22:20
  • 1
    I've checked the post but my answer doesn't change. You should run the above command once per image and then run ffmpeg again to concat the two video. I don't know why it's not even working for you. Again, can you post the error message? – Marco Martinelli Jun 23 '13 at 22:28
  • 1
    @jesper - in general, if you say "it's not working" without giving additional detail, then it's hard for your interlocutor to advise you without asking for further detail. It is a good idea to take answers from here as clues to further your quest, rather than polished solutions - that's your job. If something doesn't work as you expect, try to offer some thoughts as to _why_ it doesn't work, and spend some additional time working it out for yourself too. (+1 for the answer, -1 for the question). – halfer Jun 23 '13 at 22:28
  • It doesn't respons any errors. I have tried $output = exec("ffmpeg -f image2 -loop 1 -vframes 100 -i /home/psafari/public_html/youtube_images/movie_" . $id . ".jpg -vcodec mpeg4 /home/psafari/public_html/youtube_videos/movie_" . time().".avi", $output); print_r($output); – jesper Jun 23 '13 at 22:33
  • 1
    Ok, have you tried to run it in a real shell? There can be any sort of problems here.. If it work in a shell then try to run another command in php exec just to see if that work. – Marco Martinelli Jun 23 '13 at 22:46
  • 1
    Your version of ffmpeg is outdated – Marco Martinelli Jun 23 '13 at 22:56
  • For reference, I'm using `ffmpeg version 0.8.6-6:0.8.6-1ubuntu2, Copyright (c) 2000-2013 the Libav developers built on Mar 30 2013 22:20:06 with gcc 4.7.2` – Marco Martinelli Jun 23 '13 at 22:57
  • Ok now updated, and it works. Great. Now; How to make those 2 pictures as i mentored in post? :[ – jesper Jun 23 '13 at 23:05
  • 1
    As I've said you should concatenate two videos and as r043v said you should really read the manual. By the way, try with `mencoder -ovc copy -o out.mp4 a.mp4 b.mp4` and please remember to accept the answer. – Marco Martinelli Jun 23 '13 at 23:11
  • Now i having 2 videos. When i try memcoder, it makes the file "final.mp4", but it's always 77.787 in size. It shows the first movie correctly, but then next it doesn't show. It doesn't either show the duration when i download it and play in VLC. mencoder -ovc copy -o /home/psafari/public_html/final_".time().".avi /home/psafari/public_html/youtube_videos/".$movie1." /home/psafari/public_html/youtube_videos/".$movie2 – jesper Jun 23 '13 at 23:30
  • doesn't show the duration and it's always 77.787 byte length? are you sure you are downloading the entiere video? try memcoder in a shell and check the length of final.mp4 with `ls -l` then check the video with `ffprobe final.mp4` and look for the duration. – Marco Martinelli Jun 24 '13 at 06:39
  • Check post for output for memcode – jesper Jun 24 '13 at 06:58
  • You should really read the error messages.. last line: `All video files must have identical fps, resolution, and codec for -ovc copy.` I think it's clear enough. – Marco Martinelli Jun 24 '13 at 08:31
  • Please use chat for extended discussions, then update the answer accordingly. – BoltClock Jun 24 '13 at 08:59