Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

FFmpeg convert single image into video Android

Tags:

android

ffmpeg

I am trying to convert a single image into a video using FFmpeg. I have tried following the files:

"ffmpeg  -analyzeduration 2147483647 -probesize 2147483647 -i " + packat.get(i).path +"-r 25 -t 1000 -y op.mp4"

"ffmpeg -loop 1 -r 23.976 -i input.jpg -t 00:00:02 -vcodec qtrle -an output.mov"

"ffmpeg -i c:\rawvideo\mask.bmp -loop 1 -r 29.97 -s 720x480
        -aspect 4:3 -t 00:04:05 -vcodec mjpeg -vb 11261600 -an
        c:\rawvideo\fullmask.avi"

But all of them give me this annoying error:

 Can not process SOS before SOF, skipping marker parser used 0 bytes (0 bits) decode frame unused 0 bytes decoding for stream 0 failed 
Could not find codec parameters for stream 0 (Video: mjpeg): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options /storage/sdcard0/cblVE/temp/0.jpg: could not find codec parameters 
exit_program: 1 

Please help. I have searched for a solution from a week, but I have found nothing.

like image 819
berserk Avatar asked May 02 '14 09:05

berserk


2 Answers

--EDIT--

  1. your using "-f mp4" So, in your ffmpeg config/buid , did you ask for that ? verfiy with "ffmpeg -formats" and check that your build actually supports mp4.

  2. look at your log and go to the source code for "libavcodec/mux.c"

    search line# 124 in the source func=avformat_alloc_output_context2

    this is where your log error is coming from according to your pastebin #210

    according to the method's line 146 and to your pastebin - you dont have a value for 'filename' ....

    in your pastebin #209- 210 , thats a very odd filename for your output?

    especially since your CLI args routine shows that an output filename was accepted by ffmpeg.c.

below was run on linux but will work on android depending on your android build of ffmpeg...

ffmpeg -y -loop 1 -t 3.03 -i ~/Pictures/yaya_speech_choose2.png   -r 1  -vcodec libx264 -b:v 200k -bt 350k   -f mp4 ~/Videos/dummy.mp4


ffmpeg version N-35901-g27a3415 Copyright (c) 2000-2012 the FFmpeg developers
  built on Oct  7 2012 12:06:43 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
  configuration: --enable-gpl --enable-libfaac --enable-libfdk-aac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-x11grab --enable-libx264 --enable-nonfree --enable-version3
  libavutil      51. 73.102 / 51. 73.102
  libavcodec     54. 64.100 / 54. 64.100
  libavformat    54. 29.105 / 54. 29.105
  libavdevice    54.  3.100 / 54.  3.100
  libavfilter     3. 19.102 /  3. 19.102
  libswscale      2.  1.101 /  2.  1.101
  libswresample   0. 16.100 /  0. 16.100
  libpostproc    52.  1.100 / 52.  1.100
Input #0, image2, from '/home/rob/Pictures/yaya_speech_choose2.png':
  Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: png, rgb24, 1080x1920, 25 fps, 25 tbr, 25 tbn, 25 tbc
-t is not an input option, keeping it for the next output; consider fixing your command line.
[libx264 @ 0x1e32500] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX
[libx264 @ 0x1e32500] profile High 4:4:4 Predictive, level 4.0, 4:4:4 8-bit
[libx264 @ 0x1e32500] 264 - core 128 r10 198a7ea - H.264/MPEG-4 AVC codec - Copyleft 2003-2012 - 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=4 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=1 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=abr mbtree=1 bitrate=200 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to '/home/rob/Videos/dummy.mp4':
  Metadata:
    encoder         : Lavf54.29.105
    Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv444p, 1080x1920, q=-1--1, 200 kb/s, 16384 tbn, 1 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (png -> libx264)
Press [q] to stop, [?] for help
frame=    4 fps=1.8 q=32766.0 Lsize=     236kB time=00:00:02.00 bitrate= 968.3kbits/s dup=0 drop=59    
video:236kB audio:0kB subtitle:0 global headers:0kB muxing overhead 0.350287%
[libx264 @ 0x1e32500] frame I:1     Avg QP: 9.29  size:239979
[libx264 @ 0x1e32500] frame P:1     Avg QP: 9.85  size:   128
[libx264 @ 0x1e32500] frame B:2     Avg QP: 9.92  size:   192
[libx264 @ 0x1e32500] consecutive B-frames: 25.0%  0.0% 75.0%  0.0%
[libx264 @ 0x1e32500] mb I  I16..4: 36.2% 49.0% 14.7%
[libx264 @ 0x1e32500] mb P  I16..4:  0.0%  0.0%  0.0%  P16..4:  0.1%  0.0%  0.0%  0.0%  0.0%    skip:99.8%
[libx264 @ 0x1e32500] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  0.3%  0.1%  0.1%  direct: 0.3%  skip:99.2%  L0:68.9% L1:31.1% BI: 0.0%
[libx264 @ 0x1e32500] final ratefactor: 24.49
[libx264 @ 0x1e32500] 8x8 transform intra:49.0% inter:92.3%
[libx264 @ 0x1e32500] coded y,u,v intra: 37.6% 27.9% 30.0% inter: 0.0% 0.0% 0.0%
[libx264 @ 0x1e32500] i16 v,h,dc,p: 84% 10%  3%  3%
[libx264 @ 0x1e32500] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu:  9% 67%  5%  2%  3%  2%  4%  4%  3%
[libx264 @ 0x1e32500] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 17% 44% 10%  4%  6%  3%  8%  3%  6%
[libx264 @ 0x1e32500] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x1e32500] kb/s:480.98
like image 50
Robert Rowntree Avatar answered Oct 01 '22 19:10

Robert Rowntree


Maybe you must compile a fresh ffmpeg build and use it. Can you tell me which videokit you are using?

like image 33
Mukesh Rana Avatar answered Oct 01 '22 19:10

Mukesh Rana