7 votes

Comment combiner WebM et Opus pour générer un MP4 ?

J'utilise la commande suivante mais elle donne un résultat erroné.

ffmpeg -i video.webm -i audio.opus -c:v copy -c:a aac -strict experimental output.mp4

出力します。

ffmpeg version 1.2.6-7:1.2.6-1~trusty1 Copyright (c) 2000-2014 the FFmpeg developers
  built on Apr 26 2014 18:52:58 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
  configuration: --arch=amd64 --disable-stripping --enable-avresample --enable-pthreads --enable-runtime-cpudetect --extra-version='7:1.2.6-1~trusty1' --libdir=/usr/lib/x86_64-linux-gnu --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopencv --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-libcdio --enable-x11grab --enable-libx264 --shlibdir=/usr/lib/x86_64-linux-gnu --enable-shared --disable-static
  libavutil      52. 18.100 / 52. 18.100
  libavcodec     54. 92.100 / 54. 92.100
  libavformat    54. 63.104 / 54. 63.104
  libavdevice    53.  5.103 / 53.  5.103
  libavfilter     3. 42.103 /  3. 42.103
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  2.100 / 52.  2.100
Input #0, matroska,webm, from 'video.webm':
  Duration: 00:00:04.92, start: 0.000000, bitrate: 243 kb/s
    Stream #0:0: Video: vp8, yuv420p, 640x480, SAR 1:1 DAR 4:3, 18 fps, 18 tbr, 1k tbn, 1k tbc (default)
Input #1, ogg, from 'audio.opus':
  Duration: 00:00:05.16, start: 0.000000, bitrate: 32 kb/s
    Stream #1:0: Audio: opus, 48000 Hz, stereo, s16
[mp4 @ 0x647940] track 0: could not find tag, codec not currently supported in container
Output #0, mp4, to 'output.mp4':
  Metadata:
    encoder         : Lavf54.63.104
    Stream #0:0: Video: vp8, yuv420p, 640x480 [SAR 1:1 DAR 4:3], q=2-31, 18 fps, 90k tbn, 1k tbc (default)
    Stream #0:1: Audio: aac ([64][0][0][0] / 0x0040), 48000 Hz, stereo, fltp, 128 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #1:0 -> #0:1 (libopus -> aac)
Could not write header for output file #0 (incorrect codec parameters ?): Operation not permitted

17voto

slhck Points 209720

Les conteneurs WebM contiennent généralement des vidéos VP8 ou VP9. Le format de conteneur MP4, quant à lui, ne prend pas en charge la vidéo VP8 ou VP9, du moins pas dans les cas suivants selon l'autorité d'enregistrement .

Dans votre commande, vous essayez de copier le bitstream vidéo, et évidemment cela échouera :

codec non supporté actuellement dans le conteneur

Vous avez deux options :

  1. Recoder la vidéo en H.264 en utilisant -c:v libx264 .
  2. Choisissez un autre conteneur de sortie comme Matroska ( .mkv ), mais notez que cela ne sera pas compatible avec la vidéo HTML5.

Voir aussi Référence MDN sur les formats vidéo HTML pris en charge et ce billet de Super User sur la façon de convertir une vidéo pour HTML5 : De quel paquet de ffmpeg scripts ai-je besoin pour obtenir une "vidéo pour tous" compatible HTML5 ?

3voto

Ringo_0 Points 31
ffmpeg -i video.webm -i audio.opus -c:v copy -c:a aac -strict experimental output.mp4

cela devrait ressembler à quelque chose comme ça.

ffmpeg -i audio.opus -i vid.webm  -c:v copy -c:a opus -strict experimental output6.webm

remplacez aac par opus et les deux fichiers autour avec opus devant (je pense), cela devrait fonctionner.

0voto

Bhakki Points 1

Une simple commande avec l'option de copie avec la conversion de webm en mp4 ne fonctionne pas à cause de la différence d'un codec que nous ne touchons pas pendant la conversion. C'est comme si on changeait simplement l'extension du fichier d'entrée. Pour s'assurer que la sortie est lue par les lecteurs/téléviseurs H.264, utilisez la commande suivante

ffmpeg -y -i "input_video.webm" -i "input_audio.webm" "output_file.mp4"  -c:v libx264 -c:a aac

Notez que l'exécution sera très lente et ajoutez -preset veryfast en fonction de vos besoins en matière de qualité. Réf : https://addpipe.com/blog/converting-webm-to-mp4-with-ffmpeg/

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X