l'extraction h264 flux vidéo brut de mp4 ou flv avec ffmpeg générer un flux invalide

Je suis en train d'extraire le flux vidéo à partir d'un mp4 ou flv h264 vidéo (vidéo youtube) à l'aide de ffmpeg. La vidéo d'origine (test.flv) jouer sans problème avec ffplay , ffprobe donne une erreur comme suit:

ffprobe version N-55515-gbbbd959 Copyright (c) 2007-2013 the FFmpeg developers
built on Aug 13 2013 18:06:32 with gcc 4.7.3 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetyp
e --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --ena
ble-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-l
ibopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libsp
eex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-
amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --
enable-libxvid --enable-zlib
  libavutil      52. 42.100 /52. 42.100
  libavcodec     55. 27.100 /55. 27.100
  libavformat    55. 13.102 /55. 13.102
  libavdevice    55.  3.100 /55.  3.100
  libavfilter     3. 82.100 / 3. 82.100
  libswscale      2.  4.100 / 2.  4.100
  libswresample   0. 17.103 / 0. 17.103
  libpostproc    52.  3.100 /52.  3.100
[flv @ 000000000031ea80] Stream discovered after head already parsed
Input #0, flv, from 'test.flv':
  Metadata:
    starttime       : 0
    totalduration   : 142
    totaldatarate   : 692
    bytelength      : 12286492
    canseekontime   : true
    sourcedata      : B42B95507HH1381414522145462
    purl            :
    pmsg            :
  Duration: 00:02:22.02, start: 0.000000, bitrate: 692 kb/s
    Stream #0:0: Video: h264 (Main), yuv420p, 640x268, 568 kb/s, 23.98 tbr, 1k t
bn, 47.95 tbc
    Stream #0:1: Audio: aac, 44100 Hz, stereo, fltp, 131 kb/s
    Stream #0:2: Data: none
Unsupported codec with id 0 for input stream 2

pour se débarrasser de la plus-flux ( j'ai seulement besoin de la vidéo), j'ai utilisé la suite de ffmpeg en ligne de commande:

ffmpeg -i test.flv -map 0:0 -vcodec copy -an -f h264 test.h264

Le nouveau flux est illisible par n'importe quel joueur, y compris ffplay et donne une erreur avec ffprobe :
test.h264: données non valides trouvé lors du traitement de inputq= 0B f=0/0

Tout corps d'avoir une idée sur ce que je fais mal?

J'ai aussi essayé de plus simple youtube ligne de commande:

ffmpeg -i test.flv -vcodec copy -an test.h264

si j'utilise un autre format (avi par exemple):

ffmpeg -i test.flv -vcodec copy -an test.avi

la vidéo de sortie est valide.

Si je transcoder la vidéo

ffmpeg -i test.flv -an test.h264

la sortie est également valable

Des suggestions?

essayez quelque chose comme-vfbs h264_mp4toannexb . ajouter cette option avant votre sortie.
Vous devez toujours inclure l'intégralité de ffmpeg sortie de la console(s) et pas seulement des sections.
J'ai édité ma question pour ajouter le remplir sortie de la console. En réalité, le bsf:v h264_mp4toannexb signalé par @alexbuisson filtre a résolu le problème. Pouvez-vous l'ajouter comme une réponse ou devrais-je le faire? Merci!!!!!
stackoverflow.com/questions/10380045/...

OriginalL'auteur dhia | 2013-10-10