2014-02-21 3 views
6

gelaicht Wenn ich FFMpeg von der Kommandozeile wie dieseimmer Fehler von FFMpeg, wenn sie von .NET

ffmpeg.exe -hwaccel auto -re -i "C:\Users\Public\Videos\Sample Videos\Wildlife.wmv" -an -sn -c:v bmp -pix_fmt bgr24 -f rawvideo - > junk.bin 

es funktioniert gut laufen. Allerdings, wenn ich das gleiche Ding spawn (minus > junk.bin) bekomme ich diese böse "Bad Header" Fehler nach ein paar Sekunden der Wiedergabe. Was verursacht das? Ich habe Probleme zu glauben, dass mein Prozess die Pipe länger als das Dateisystem blockiert, aber es sollte in der Lage sein, die Pipe auf unbestimmte Zeit zu blockieren, ohne die Decodierung zu vereiteln. Das abgeschnittene stderr ist unten. Mein Code, um das Ding zu spawnen ist here.

ffmpeg version N-60761-g916a792 Copyright (c) 2000-2014 the FFmpeg developers 
    built on Feb 19 2014 21:57:22 with gcc 4.8.2 (GCC) 
    configuration: --target-os=mingw32 --enable-shared --enable-runtime-cpudetect 
    libavutil  52. 65.100/52. 65.100 
    libavcodec  55. 52.102/55. 52.102 
    libavformat 55. 33.100/55. 33.100 
    libavdevice 55. 10.100/55. 10.100 
    libavfilter  4. 1.103/4. 1.103 
    libswscale  2. 5.101/2. 5.101 
    libswresample 0. 17.104/0. 17.104 
cygwin warning: 
    MS-DOS style path detected: C:\Users\Public\Videos\Sample Videos\Wildlife.wmv 
    Preferred POSIX equivalent is: /cygdrive/c/Users/Public/Videos/Sample Videos/Wildlife.wmv 
    CYGWIN environment variable option "nodosfilewarning" turns off this warning. 
    Consult the user's guide for more details about POSIX paths: 
    http://cygwin.com/cygwin-ug-net/using.html#using-pathnames 
[asf @ 0x600059480] Stream #0: not enough frames to estimate rate; consider increasing probesize 
Guessed Channel Layout for Input Stream #0.0 : stereo 
Input #0, asf, from 'C:\Users\Public\Videos\Sample Videos\Wildlife.wmv': 
    Metadata: 
    SfOriginalFPS : 299700 
    WMFSDKVersion : 11.0.6001.7000 
    WMFSDKNeeded : 0.0.0.0000 
    comment   : Footage: Small World Productions, Inc; Tourism New Zealand | Producer: Gary F. Spradling | Music: Steve Ball 
    title   : Wildlife in HD 
    copyright  : © 2008 Microsoft Corporation 
    IsVBR   : 0 
    DeviceConformanceTemplate: [email protected] 
    Duration: 00:00:30.09, start: 0.000000, bitrate: 6977 kb/s 
    Stream #0:0(eng): Audio: wmav2 (a[1][0][0]/0x0161), 44100 Hz, stereo, fltp, 192 kb/s 
    Stream #0:1(eng): Video: vc1 (Advanced) (WVC1/0x31435657), yuv420p, 1280x720, 5942 kb/s, 29.97 tbr, 1k tbn, 1k tbc 
Output #0, rawvideo, to 'pipe:': 
    Metadata: 
    SfOriginalFPS : 299700 
    WMFSDKVersion : 11.0.6001.7000 
    WMFSDKNeeded : 0.0.0.0000 
    comment   : Footage: Small World Productions, Inc; Tourism New Zealand | Producer: Gary F. Spradling | Music: Steve Ball 
    title   : Wildlife in HD 
    copyright  : © 2008 Microsoft Corporation 
    IsVBR   : 0 
    DeviceConformanceTemplate: [email protected] 
    encoder   : Lavf55.33.100 
    Stream #0:0(eng): Video: bmp, bgr24, 1280x720, q=2-31, 200 kb/s, 90k tbn, 29.97 tbc 
Stream mapping: 
    Stream #0:1 -> #0:0 (vc1 -> bmp) 
Press [q] to stop, [?] for help 
frame= 3 fps=0.0 q=0.0 size= 8100kB time=00:00:00.10 bitrate=662902.1kbits/s  
frame= 29 fps= 26 q=0.0 size= 78302kB time=00:00:00.96 bitrate=662902.3kbits/s  
frame= 50 fps= 30 q=0.0 size= 135003kB time=00:00:01.66 bitrate=662902.2kbits/s  
frame= 65 fps= 30 q=0.0 size= 175503kB time=00:00:02.16 bitrate=662902.2kbits/s  
frame= 80 fps= 30 q=0.0 size= 216004kB time=00:00:02.66 bitrate=662902.1kbits/s  
frame= 95 fps= 30 q=0.0 size= 256505kB time=00:00:03.16 bitrate=662902.1kbits/s  
[asf @ 0x600059480] ff asf bad header 74 at:5053733 
[asf @ 0x600059480] invalid packet_length -1908511255 at:5053740 
[asf @ 0x600059480] ff asf bad header d4 at:5053759 
[asf @ 0x600059480] ff asf skip 55629 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5181733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5189733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5197733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5205733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5213733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5221733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5229733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5237733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5245733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5357733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5365733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5373733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5381733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5493733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5501733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5509733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5517733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5629733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5637733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5645733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5653733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5701733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5709733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5717733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5725733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5805733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5813733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5821733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5829733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5877733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5885733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5893733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5901733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5949733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5957733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5965733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] ff asf bad header 0 at:5973733 
[asf @ 0x600059480] ff asf skip 7991 (unknown stream) 
[asf @ 0x600059480] packet_obj_size invalid 
    Last message repeated 15 times 
[asf @ 0x600059480] unexpected packet_replic_size of 2 
[asf @ 0x600059480] packet_obj_size invalid 
    Last message repeated 7 times 
[asf @ 0x600059480] ff asf skip 2562 (unknown stream) 
[asf @ 0x600059480] packet_obj_size invalid 
    Last message repeated 3 times 
[asf @ 0x600059480] ff asf skip 448 (unknown stream) 
[asf @ 0x600059480] packet_obj_size invalid 
    Last message repeated 9 times 
[asf @ 0x600059480] unexpected packet_replic_size of 6 
[asf @ 0x600059480] packet_obj_size invalid 
    Last message repeated 7 times 
[asf @ 0x600059480] packet_frag_size is invalid (1749-9) 
[asf @ 0x600059480] packet_obj_size invalid 
    Last message repeated 13 times 
[asf @ 0x600059480] packet_frag_size is invalid (1749-9) 
[asf @ 0x600059480] packet_obj_size invalid 
    Last message repeated 24 times 
[asf @ 0x600059480] unexpected packet_replic_size of 6 
[asf @ 0x600059480] packet_obj_size invalid 
    Last message repeated 6 times 
[asf @ 0x600059480] unexpected packet_replic_size of 5 
[asf @ 0x600059480] packet_obj_size invalid 
    Last message repeated 6 times 
[asf @ 0x600059480] packet_frag_size is invalid (1749-9) 
[asf @ 0x600059480] packet_obj_size invalid 
[asf @ 0x600059480] packet_frag_size is invalid (1749-9) 
[asf @ 0x600059480] packet_obj_size invalid 
    Last message repeated 2 times 
[asf @ 0x600059480] unexpected packet_replic_size of 5 
[asf @ 0x600059480] packet_obj_size invalid 
    Last message repeated 8 times 
[asf @ 0x600059480] unexpected packet_replic_size of 5 
[asf @ 0x600059480] packet_obj_size invalid 
    Last message repeated 39 times 
[asf @ 0x600059480] packet_frag_size is invalid (1749-40) 
+0

Wenn Sie ffMpeg auf .Net verwenden, warum verwenden Sie MediaHandler Pro nicht zum Einpacken? –

+0

Ich denke, die Verwendung einer externen Bibliothek, die FFMPEG bereits umschließt, würde Ihnen sehr helfen. Ich habe den Video-Teil von AForge.NET verwendet, der eine externe FFMPEG-Bibliothek enthält, um Frames aus einer .mpeg mit großem Erfolg zu extrahieren. Sie finden es [hier] (https://code.google.com/p/aforge/). –

+0

Das Minuszeichen am Ende der Befehlszeile bewirkt, dass FFMpeg Eingabedaten von der Standardeingabe erwartet. Sie haben eine Eingabedatei explizit mit "-i" angegeben. Daher möchte ich lieber das "-" weglassen. –

Antwort

0

Versuchen Sie, die Option -re zu entfernen. Es teilt ffmpeg zu read from the input at the native framerate mit, und möglicherweise gibt es einige Synchronisierungs- oder Flaschenhalsprobleme zwischen der Festplatte, ffmpeg und Ihrem Ausgabeerfassungsprogramm.

Da Ihre Eingabe auf einer lokalen Festplatte gespeichert ist, scheint es keinen Grund zu geben, die Datei nicht einfach zu lesen.

+0

Ich habe das '-re' entfernt und der Fehler ist immer noch vorhanden. – Brannon