asp.net - ffmpeg fails to convert an uploaded video file whose size greater than 14mb when executed through c#.net -


i converting videos flv using ffmpeg.exe through c# , process gets stuck , conversion fails if file size exceeds 14mb. i've tried run ffmpeg directly through command prompt , works fine regardless of size.

my conversion code follows:

outputfile = savepath + "swf\\" + withoutext + ".flv"; filargs = string.format("-i {0} -ar 22050 -qscale 1 {1}",inputfile,outputfile);  process proc; proc = new process();  try {      proc.startinfo.filename = spath + "\\ffmpeg\\ffmpeg.exe";      proc.startinfo.arguments = filargs;      proc.startinfo.useshellexecute = false;      proc.startinfo.createnowindow = false;      proc.startinfo.redirectstandardoutput = true;      proc.startinfo.redirectstandarderror = true;      proc.start();       string stdoutvideo = proc.standardoutput.readtoend();      string stderrvideo = proc.standarderror.readtoend();  }   {      proc.waitforexit();      proc.close();  } 

when tried manually stop running process stderroutput follows:

ffmpeg version svn-r21231-sherpya, copyright (c) 2000-2010 fabrice bellard, et al. built on jan 16 2010 05:42:31 gcc 4.2.5 20080919 (prerelease) [sherpya] libavutil 50. 7. 0 / 50. 7. 0 libavcodec 52.47. 0 / 52.47. 0 libavformat 52.47. 0 / 52.47. 0 libavdevice 52. 2. 0 / 52. 2. 0 libavfilter 1.15. 0 / 1.15. 0 libswscale 0. 8. 0 / 0. 8. 0 libpostproc 51. 2. 0 / 51. 2. 0 input #0, mov,mp4,m4a,3gp,3g2,mj2, 'c:\project-folder-files\thirtysecondpitch\video\7.mp_c88a8ec2-3a60-4133-aee6-7e2d93b62324.mp4': metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2mp41 duration: 00:00:23.13, start: 0.000000, bitrate: 9261 kb/s stream #0.0(jpn): video: mpeg4, yuv420p, 1280x720 [par 1:1 dar 16:9], 9128 kb/s, 30 tbr, 30 tbn, 30 tbc stream #0.1(jpn): audio: aac, 48000 hz, stereo, s16, 127 kb/s output #0, flv, 'c:\project-folder-files\thirtysecondpitch\video\swf\7.mp_c88a8ec2-3a60-4133-aee6-7e2d93b62324.flv': stream #0.0(jpn): video: flv, yuv420p, 1280x720 [par 1:1 dar 16:9], q=2-31, 200 kb/s, 1k tbn, 30 tbc stream #0.1(jpn): audio: libmp3lame, 22050 hz, stereo, s16, 64 kb/s stream mapping: stream #0.0 -> #0.0 stream #0.1 -> #0.1 press [q] stop encoding frame= 19 fps= 0 q=1.0 size= 596kb time=0.50 bitrate=9839.2kbits/s
frame= 36 fps= 33 q=1.0 size= 1284kb time=1.07 bitrate=9822.2kbits/s
frame= 55 fps= 34 q=1.0 size= 2076kb time=1.70 bitrate=10013.6kbits/s
frame= 74 fps= 35 q=1.0 size= 2819kb time=2.35 bitrate=9822.2kbits/s
frame= 93 fps= 35 q=1.0 size= 3583kb time=2.95 bitrate=9943.3kbits/s
frame= 113 fps= 36 q=1.0 size= 4457kb time=3.63 bitrate=10056.2kbits/s
frame= 132 fps= 36 q=1.0 size= 5157kb time=4.26 bitrate=9922.3kbits/s
frame= 152 fps= 37 q=1.0 size= 5972kb time=4.91 bitrate=9961.6kbits/s
frame= 172 fps= 37 q=1.0 size= 6817kb time=5.62 bitrate=9943.9kbits/s
frame= 192 fps= 37 q=1.0 size= 7676kb time=6.27 bitrate=10030.1kbits/s
frame= 212 fps= 37 q=1.0 size= 8488kb time=6.92 bitrate=10045.9kbits/s
frame= 232 fps= 37 q=1.0 size= 9306kb time=7.58 bitrate=10062.8kbits/s
frame= 251 fps= 37 q=1.0 size= 10150kb time=8.26 bitrate=10072.1kbits/s
frame= 271 fps= 37 q=1.0 size= 10970kb time=8.88 bitrate=10117.6kbits/s
frame= 291 fps= 38 q=1.0 size= 11815kb time=9.56 bitrate=10123.7kbits/s
frame= 311 fps= 38 q=1.0 size= 12625kb time=10.24 bitrate=10100.1kbits/s
frame= 331 fps= 38 q=1.0 size= 13414kb time=10.89 bitrate=10088.0kbits/s
frame= 351 fps= 38 q=1.0 size= 14125kb time=11.55 bitrate=10021.7kbits/s
frame= 371 fps= 38 q=1.0 size= 14929kb time=12.25 bitrate=9983.0kbits/s
frame= 391 fps= 38 q=1.0 size= 15701kb time=12.90 bitrate=9967.8kbits/s
frame= 411 fps= 38 q=1.0 size= 16385kb time=13.56 bitrate=9899.9kbits/s
frame= 431 fps= 38 q=1.0 size= 17137kb time=14.21 bitrate=9878.7kbits/s
frame= 451 fps= 38 q=1.0 size= 17938kb time=14.92 bitrate=9851.7kbits/s
frame= 471 fps= 38 q=1.0 size= 18663kb time=15.57 bitrate=9820.0kbits/s
frame= 491 fps= 38 q=1.0 size= 19379kb time=16.22 bitrate=9786.4kbits/s
frame= 511 fps= 38 q=1.0 size= 20179kb time=16.90 bitrate=9780.9kbits/s
frame= 530 fps= 38 q=1.0 size= 20893kb time=17.53 bitrate=9764.8kbits/s
frame= 550 fps= 38 q=1.0 size= 21633kb time=18.18 bitrate=9747.3kbits/s
frame= 570 fps= 38 q=1.0 size= 22464kb time=18.89 bitrate=9743.5kbits/s
frame= 590 fps= 38 q=1.0 size= 23227kb time=19.54 bitrate=9737.7kbits/s
frame= 609 fps= 38 q=1.0 size= 23992kb time=20.17 bitrate=9745.8kbits/s
frame= 629 fps= 38 q=1.0 size= 24804kb time=20.85 bitrate=9747.4kbits/s
frame= 648 fps= 38 q=1.0 size= 25501kb time=21.45 bitrate=9740.6kbits/s
frame= 668 fps= 38 q=1.0 size= 26306kb time=22.13 bitrate=9739.7kbits/s
frame= 687 fps= 38 q=1.0 size= 27040kb time=22.80 bitrate=9713.2kbits/s

the problem not in size of file being converted.

you're trying perform 2 synchronous read end of both redirected streams. may cause deadlock (my guess: you've caught because of lager file size).

so should comment 1 of these lines:

string stdoutvideo = proc.standardoutput.readtoend(); string stderrvideo = proc.standarderror.readtoend(); 

or read 1 of streams asynchronously.

fyi: ffmpeg uses stderr logging purposes (suppose, want capture output); , uses stdout pipe out binary data(multimedia, snapshots, etc.). don't see real reason stdout redirection.


Comments

Popular posts from this blog

android - Spacing between the stars of a rating bar? -

html - Instapaper-like algorithm -

c# - How to execute a particular part of code asynchronously in a class -