10
votes

Écrire un fichier MP4 sur le Mac avec OpenCV FFMPEG

J'utilise OpenCV avec FFMPEG sur un Mac pour écrire une vidéo. J'ai été capable d'écrire avec succès des fichiers .avi à l'aide du code CODEC / FOURCC, FMP4. Je voudrais écrire des fichiers .mp4, cependant. Lorsque j'essaie d'écrire un fichier .mp4 à l'aide de Fourcc FMP4, j'ai cette erreur:

% x264 --help
x264 core:125
Syntax: x264 [options] -o outfile infile

Infile can be raw (in which case resolution is required),
  or YUV4MPEG (*.y4m),
  or Avisynth if compiled with support (no).
  or libav* formats if compiled with lavf support (no) or ffms support (no).
Outfile type is selected by filename:
 .264 -> Raw bytestream
 .mkv -> Matroska
 .flv -> Flash Video
 .mp4 -> MP4 if compiled with GPAC support (no)
Output bit depth: 8 (configured at compile time)

Options:

  -h, --help                  List basic options
      --longhelp              List more options
      --fullhelp              List all options

Example usage:

      Constant quality mode:
            x264 --crf 24 -o <output> <input>

      Two-pass with a bitrate of 1000kbps:
            x264 --pass 1 --bitrate 1000 -o <output> <input>
            x264 --pass 2 --bitrate 1000 -o <output> <input>

      Lossless:
            x264 --qp 0 -o <output> <input>

      Maximum PSNR at the cost of speed and visual quality:
            x264 --preset placebo --tune psnr -o <output> <input>

      Constant bitrate at 1000kbps with a 2 second-buffer:
            x264 --vbv-bufsize 2000 --bitrate 1000 -o <output> <input>

Presets:

      --profile <string>      Force the limits of an H.264 profile
                                  Overrides all settings.
                                  - baseline,main,high,high10,high422,high444
      --preset <string>       Use a preset to select encoding settings [medium]
                                  Overridden by user settings.
                                  - ultrafast,superfast,veryfast,faster,fast
                                  - medium,slow,slower,veryslow,placebo
      --tune <string>         Tune the settings for a particular type of source
                              or situation
                                  Overridden by user settings.
                                  Multiple tunings are separated by commas.
                                  Only one psy tuning can be used at a time.
                                  - psy tunings: film,animation,grain,
                                                 stillimage,psnr,ssim
                                  - other tunings: fastdecode,zerolatency

Frame-type options:

  -I, --keyint <integer or "infinite"> Maximum GOP size [250]
      --tff                   Enable interlaced mode (top field first)
      --bff                   Enable interlaced mode (bottom field first)
      --pulldown <string>     Use soft pulldown to change frame rate
                                  - none, 22, 32, 64, double, triple, euro (requires cfr input)

Ratecontrol:

  -B, --bitrate <integer>     Set bitrate (kbit/s)
      --crf <float>           Quality-based VBR (0-51) [23.0]
      --vbv-maxrate <integer> Max local bitrate (kbit/s) [0]
      --vbv-bufsize <integer> Set size of the VBV buffer (kbit) [0]
  -p, --pass <integer>        Enable multipass ratecontrol
                                  - 1: First pass, creates stats file
                                  - 2: Last pass, does not overwrite stats file

Input/Output:

  -o, --output <string>       Specify output file
      --sar width:height      Specify Sample Aspect Ratio
      --fps <float|rational>  Specify framerate
      --seek <integer>        First frame to encode
      --frames <integer>      Maximum number of frames to encode
      --level <string>        Specify level (as defined by Annex A)
      --quiet                 Quiet Mode

Filtering:

      --vf, --video-filter <filter0>/<filter1>/... Apply video filtering to the input file

      Filter options may be specified in <filter>:<option>=<value> format.

      Available filters:
      crop:left,top,right,bottom
      select_every:step,offset1[,...]


7 commentaires

Les conteneurs n'ont pas de Fourccs - uniquement des codecs et des formats de pixels à. FMP4 est la vidéo MPEG-4 (PARTIE 2). Quel codec vidéo utilisez-vous? H.264 / MPEG-4 AVC serait avc1 ou d'autres (voir Fourcc. org / codecs.php )


Bonjour, @slhck, c'est ma question. Quel codec vidéo dois-je utiliser lorsque vous écrivez sur un conteneur MP4? J'ai mis à jour la question pour être plus claire sur ce point. Merci.


Veuillez fournir la ligne de commande non coupée complète que vous utilisez, y compris la sortie complète. Vous êtes-vous assuré que vous avez également installé X264? ( Brew Installez x264; Brew Désinstallation FFMPEG; BREW Installez FFMPEG )


Oui, X264 est déjà installé. J'utilise OpenCV, pas FFMPEG de la ligne de commande. Mettra à jour avec l'appel complet. Merci.


J'ai également essayé d'installer GPAC, cela n'a pas changé mes résultats. Merci de votre aide.


Vous êtes peut-être intéressé à jeter un coup d'œil à Ma réponse . Il est écrit en python, mais il a été testé sur un Mac OS X. La clé est cv_fourcc ('F', 'M', 'P', '4')


Toute mise à jour sur ce numéro, @sameer?


3 Réponses :


7
votes

Cela semble une ancienne question mais je vais y répondre au profit de ceux qui trébuchent dessus. Vous ne pouvez pas obtenir FFMPEG fonctionnant avec X264 à moins que vous installiez FFMPEG à partir de la source. Les installations binaires des gestionnaires de packages n'active pas les packages X264. Vous pouvez installer Binary X264 (mais vous souhaitez probablement utiliser la source pour contrôler la version de X264 que vous souhaitez être compatible avec la version appropriée de FFMPEG).

Pour répondre à cette question: votre installation doit d'abord installer X264, puis compiler FFMPEG avec --enable-libx264.

Maintenant, il y a beaucoup de guides sur la compilation de FFMPEG à partir de la source. Une recherche rapide de Google a lancé ceci: http://www.martinlos.com/?p=41 pour Mac et https://ffmpeg.org/trac/ffmpmpeg/wiki/buntucompilationguide pour Ubuntu. Je compile régulièrement de la source sur Ubuntu et je connais ces instructions au travail et que les Mac semblent bien aussi.


0 commentaires

-1
votes

C'est beaucoup plus facile et aussi flexible pour installer FFMPEG et toutes ses dépendances à l'aide de Homebrew sur Mac:

http://www.renelevolution.com / HOW-TO-INSTALL-FFMPEG-ON-MAC-OS-X /


0 commentaires

0
votes

Pour installer FFMPEG, essayez celui qui a fonctionné pour moi:

Brew Installation --Build-from-source FFMPEG


1 commentaires

Bienvenue dans le débordement de pile. Cela ne répond pas à la question. Veuillez lire le Tour et Comment faire J'écris une bonne réponse? .