当我尝试打开电影时,我只是使用以下命令创建的:
ffmpeg -pattern_type glob -i '*.JPG' -s 640x480 movie.mp4
我从QuickTime收到一个错误:
The document “movie.mp4” could not be opened.
The file may be damaged or may not be a movie file that is compatible with QuickTime Player.
我对从iSight时间间隔生成的一组图像使用了相同的命令,但在这种情况下,以上图像均来自数码相机。分辨率要高得多,但我将其缩放为640x480,但在输出中看不到任何问题的提示:
Input #0, image2, from '*.JPG':
Duration: 00:00:04.76, start: 0.000000, bitrate: N/A
Stream #0:0: Video: mjpeg, yuvj422p(pc), 4928x3264, 25 tbr, 25 tbn, 25 tbc
与工作电影:
Input #0, image2, from '*.JPG':
Duration: 00:01:23.72, start: 0.000000, bitrate: N/A
Stream #0:0: Video: mjpeg, yuvj420p(pc), 640x480 [SAR 1:1 DAR 4:3], 25 fps, 25 tbr, 25 tbn, 25 tbc
对于输出:
Output #0, mp4, to 'movie.mp4':
Metadata:
encoder : Lavf55.19.104
Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuvj422p, 640x480, q=-1--1, 12800 tbn, 25 tbc
Stream mapping:
Stream #0:0 -> #0:0 (mjpeg -> libx264)
与工作人员相比:
Output #0, mp4, to 'movie.mp4':
Metadata:
encoder : Lavf55.19.104
Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuvj420p, 640x480 [SAR 1:1 DAR 4:3], q=-1--1, 12800 tbn, 25 tbc
Stream mapping:
Stream #0:0 -> #0:0 (mjpeg -> libx264)
除了工作影片更长,源分辨率更低之外,我唯一看到的区别是视频流中提到了额外的“ [SAR 1:1 DAR 4:3]”,但是我不知道这是什么。是,或如何尝试在不起作用的电影中强制使用它。
更新:我刚刚下载了VLC,它可以正常播放电影。所以我知道ffmpeg在这里没有错。
2
为了将来,在询问ffmpeg时,请始终包含完整的,未剪切的命令行输出。如果我没记错的话(如果您使用的是最新版本),它应该告诉您一些像素格式与某些播放器不兼容的信息。
—
slhck 2014年
ffprobe video.mp4
可用于检查使用哪种像素格式。