Command line 使用FFMPEG通过QuickTime对可读电影进行编码

Command line 使用FFMPEG通过QuickTime对可读电影进行编码,command-line,ffmpeg,Command Line,Ffmpeg,我正在尝试使用以下命令对图像序列进行编码: ffmpeg.exe -i %d.png -f mp4 -vcodec h264 test.mp4 然而,QuickTime无法打开此文件,或者有时无法播放黑色电影,而这部电影在VLC player中播放效果非常好。有什么建议可以让它在QuickTime中发挥出色 以下是输出: ffmpeg.exe -i %d.png -f mp4 -vcodec libx264 13.mp4 ffmpeg version N-49044-g89afa63 Copy

我正在尝试使用以下命令对图像序列进行编码:

ffmpeg.exe -i %d.png -f mp4 -vcodec h264 test.mp4
然而,QuickTime无法打开此文件,或者有时无法播放黑色电影,而这部电影在VLC player中播放效果非常好。有什么建议可以让它在QuickTime中发挥出色

以下是输出:

ffmpeg.exe -i %d.png -f mp4 -vcodec libx264 13.mp4
ffmpeg version N-49044-g89afa63 Copyright (c) 2000-2013 the FFmpeg developers
  built on Jan 19 2013 20:36:06 with gcc 4.7.2 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libg
sm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --e
nable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --e
nable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --en
able-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable
-libxavs --enable-libxvid --enable-zlib --enable-filter=frei0r
  libavutil      52. 15.100 / 52. 15.100
  libavcodec     54. 89.100 / 54. 89.100
  libavformat    54. 61.101 / 54. 61.101
  libavdevice    54.  3.102 / 54.  3.102
  libavfilter     3. 32.101 /  3. 32.101
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  2.100 / 52.  2.100
[image2 @ 0221b940] max_analyze_duration 5000000 reached at 5000000 microseconds

Input #0, image2, from '%d.png':
  Duration: 00:01:19.36, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: png, rgb24, 639x480, 25 fps, 25 tbr, 25 tbn, 25 tbc
[libx264 @ 0221edc0] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE
4.2 AVX
[libx264 @ 0221edc0] profile High 4:4:4 Predictive, level 3.0, 4:4:4 8-bit
[libx264 @ 0221edc0] 264 - core 129 r2230 1cffe9f - H.264/MPEG-4 AVC codec - Cop
yleft 2003-2012 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deb
lock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 m
e_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chro
ma_qp_offset=4 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 in
terlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b
_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecu
t=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0
 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to '13.mp4':
  Metadata:
    encoder         : Lavf54.61.101
    Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv444p, 639x480, q=-1--1
, 12800 tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (png -> libx264)
Press [q] to stop, [?] for help
frame=   76 fps=0.0 q=28.0 size=       3kB time=00:00:00.96 bitrate=  22.3kbits/
frame=  156 fps=155 q=28.0 size=       7kB time=00:00:04.16 bitrate=  14.7kbits/
frame=  219 fps=145 q=28.0 size=      12kB time=00:00:06.68 bitrate=  14.1kbits/
frame=  283 fps=141 q=28.0 size=      16kB time=00:00:09.24 bitrate=  14.2kbits/
frame=  352 fps=140 q=28.0 size=      25kB time=00:00:12.00 bitrate=  17.4kbits/

尝试更改像素格式:
-pix_fmt yuv420p

我还使用一系列png文件作为输入制作了一个视频。我发现Quicktime Player 7可以以任何帧速率播放我的mp4文件。如果速率“-r”值低于9,则Quicktime播放器10将显示一个绿色窗口,带有一定的阻塞性。通过指定如下值,我仍然可以使输入速率低于播放速率:

ffmpeg -r inputRate -i %d.png -qscale 1 -r 9 output.mp4

注意:我使用的是ffmpeg 0.5。

你们有什么版本的ffmpeg?你能发布这个命令的全部响应吗?很有效!(我还必须更改输入图像序列,使其具有均匀的宽度和高度)下面是完整的一行:ffmpeg.exe-I%d.png-f mp4-vcodec libx264-pix_fmt yuv420p test.mp4High 4:4:4预测性配置文件不受QuickTime支持(QuickTime中不存在相同的解码器实现)。我读到了一个QuickTime插件,它使用libavcodec进行解码。我以为它会支持高4:4:4配置文件,但事实并非如此。有没有关于QuickTime插件的建议?另外:VLC或MPlayer能够播放,因为它们有解码器的本机实现。我需要QuickTime才能播放视频。救生圈!这也有助于确保mp4在iPhone上播放!还值得注意的是,这允许视频在Keynote中播放。如果您看到“不能被2整除”错误,请使用此
-vf“scale=trunc(iw/2)*2:trunc(ih/2)*2“
(from)