Коли я намагаюся відкрити фільм, щойно створив команду:
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.
ffprobe video.mp4
можна перевірити, який формат пікселів використовується.