我在Mac上使用OpenCV和ffmpeg編寫視頻。我已經能夠使用編解碼器/ fourcc代碼FMP4成功編寫.avi文件。然而,我想編寫.mp4文件。當我嘗試使用FOURCC FMP4寫一個.mp4檔案我得到這個錯誤:使用OpenCV在Mac上編寫MP4文件ffmpeg
[mp4 @ 0x100b4ec00] Tag FMP4/0x34504d46 incompatible with output codec id '13' ([0][0][0])
當我使用AVC1我得到以下錯誤:
[libx264 @ 0x104003000] broken ffmpeg default settings detected
[libx264 @ 0x104003000] use an encoding preset (e.g. -vpre medium)
[libx264 @ 0x104003000] preset usage: -vpre <speed> -vpre <profile>
[libx264 @ 0x104003000] speed presets are listed in x264 --help
[libx264 @ 0x104003000] profile is optional; x264 defaults to high
Could not open codec 'libx264': Unspecified error
有誰知道這裏的正確的解碼器使用用OpenCV和ffmpeg寫入Mac上的MP4容器?
如果AVC1是正確的編解碼器,我該如何正確安裝ffmpeg + OpenCV?我做
brew install gpac
brew install ffmpeg
brew install opencv
我使用打開videowriter召喚:
fourcc = cv2.cv.CV_FOURCC('A', 'V', 'C', '1')
video_out = cv2.VideoWriter(
filename=output_filename,
fourcc=fourcc,
fps=video_fps,
frameSize=(video_width,video_height),
isColor=1)
當我運行x264 --help
我得到
% 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[,...]
感謝, -s
容器沒有FOURCCs - 只編解碼器和像素格式。 'FMP4'是MPEG-4(Part 2)視頻。你使用什麼視頻編解碼器? H.264/MPEG-4 AVC將會是'AVC1'或其他(見http://www.fourcc.org/codecs.php) – slhck 2013-03-27 21:00:11
嗨,@slhck,這是我的問題。在寫入MP4容器時,應使用什麼視頻編解碼器。我已經更新了這個問題,在這一點上更加清楚。謝謝。 – 2013-03-28 01:15:33
請提供您正在使用的完整未切割命令行,包括完整的輸出。你確定你安裝了x264嗎? ('brew install x264; brew卸載ffmpeg; brew install ffmpeg') – slhck 2013-03-28 07:04:50