2017-09-14 1 views
0

Mon entrée est un fichier vidéo .mp4.Impossible d'extraire l'audio mp3 de la vidéo avec ffmpeg

Essayez # 1

ffmpeg -i pipe:0 -y -map a media/73.mp3 

Erreur:

ffmpeg version 3.3.3 Copyright (c) 2000-2017 the FFmpeg developers 
    built with Apple LLVM version 8.1.0 (clang-802.0.42) 
    configuration: --prefix=/usr/local/Cellar/ffmpeg/3.3.3 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-opencl --enable-videotoolbox --disable-lzma --enable-vda 
    libavutil  55. 58.100/55. 58.100 
    libavcodec  57. 89.100/57. 89.100 
    libavformat 57. 71.100/57. 71.100 
    libavdevice 57. 6.100/57. 6.100 
    libavfilter  6. 82.100/6. 82.100 
    libavresample 3. 5. 0/3. 5. 0 
    libswscale  4. 6.100/4. 6.100 
    libswresample 2. 7.100/2. 7.100 
    libpostproc 54. 5.100/54. 5.100 
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f977d800000] stream 1, offset 0xa8: partial file 
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f977d800000] Could not find codec parameters for stream 0 (Video: h264 (avc1/0x31637661), none(smpte170m/smpte170m/bt709), 320x176, 300 kb/s): unspecified pixel format 
Consider increasing the value for the 'analyzeduration' and 'probesize' options 
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'pipe:0': 
    Metadata: 
major_brand  : mp42 
minor_version : 0 
compatible_brands: mp42isomavc1 
creation_time : 2012-03-13T08:58:06.000000Z 
encoder   : HandBrake 0.9.6 2012022800 
    Duration: 00:00:10.03, bitrate: N/A 
Stream #0:0(und): Video: h264 (avc1/0x31637661), none(smpte170m/smpte170m/bt709), 320x176, 300 kb/s, 25 fps, 25 tbr, 90k tbn, 180k tbc (default) 
Metadata: 
creation_time : 2012-03-13T08:58:06.000000Z 
    encoder   : JVT/AVC Coding 
Stream #0:1(und): Audio: aac (mp4a/0x6134706D), 48000 Hz, stereo, fltp, 160 kb/s (default) 
Metadata: 
    creation_time : 2012-03-13T08:58:06.000000Z 
Stream #0:2(und): Audio: aac (mp4a/0x6134706D), 48000 Hz, stereo, fltp, 160 kb/s 
Metadata: 
    creation_time : 2012-03-13T08:58:06.000000Z 
Stream #0:3(und): Subtitle: mov_text (text/0x74786574), 0 kb/s 
Metadata: 
    creation_time : 2012-03-13T08:58:06.000000Z 
Stream mapping: 
    Stream #0:1 -> #0:0 (aac (native) -> mp3 (libmp3lame)) 
    Stream #0:2 -> #0:1 (aac (native) -> mp3 (libmp3lame)) 
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f977d800000] stream 1, offset 0xa8: partial file 
pipe:0: Invalid data found when processing input 
Finishing stream 0:0 without any data written to it. 
Finishing stream 0:1 without any data written to it. 
[mp3 @ 0x7f977b846800] Invalid audio stream. Exactly one MP3 audio stream is required. 
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument 
Error initializing output stream 0:1 -- 
Conversion failed! 

Essayez # 2

ffmpeg -i pipe:0 -y -vn -acodec copy media/72.mp3 

Erreur:

[...] 
[mp3 @ 0x7febed835200] Invalid audio stream. Exactly one MP3 audio stream is required. 
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument 

Essayez # 3

ffmpeg -i pipe:0 -y -codec:a libmp3lame -qscale:a 2 media/74.mp3 

Pas d'erreur avec ffmpeg, mais le fichier est invalide (sa taille est de 334 octets)


Essayez # 4

ffmpeg -i pipe:0 -y -vn -acodec mp3 media/78.mp3 

Aucune erreur avec ffmpeg, mais le fichier est invali d (sa taille est de 334 octets)


Essayez # 5

ffmpeg -f mp4 -i pipe:0 -y media/80.mp3 

Pas d'erreur avec ffmpeg, mais le fichier est invalide (sa taille est de 334 octets)


Qu'est-ce que est-ce que je fais mal? Cela semble être une chose assez facile à faire ...

+1

Pourquoi essayez-vous de la conduite Fichier MP4 au lieu de l'utiliser comme une entrée normale? 'ffmpeg -i input.mp4 output.mp3' – LordNeckbeard

+0

J'utilise' node-fluent-ffmpeg' et j'ai pensé qu'il nécessitait un 'ReadStream'. Vous avez raison, en pointant directement sur le chemin du fichier d'entrée fonctionne comme prévu. Je me demande pourquoi piping la vidéo ne fonctionne pas, je n'ai aucun problème à convertir des fichiers audio (par exemple wav en mp3) lors de la tuyauterie. En outre, nous pouvons voir que la vidéo est une entrée valide dans le premier message d'erreur que j'ai posté. Quoi qu'il en soit, merci pour l'aide. – maximedupre

+0

Les fichiers MP4 typiques ne sont pas compatibles avec les tubes. – LordNeckbeard

Répondre

1

Essayez ceci pour l'extrait .mp3:

ffmpeg -i video.mp4 -map 0:a -acodec libmp3lame out.mp3 

Et peut-être utile pour cet extrait .m4a:

ffmpeg -i video.mp4 -map 0:a -c copy out.m4a