ffmpeg concat Импорт iMovie - несогласованная ошибка
Я пытаюсь создать два фильма, используя набор временных скриншотов с ffmpeg
, с помощью -f concat
указать png скриншоты и длительности, для которых они должны быть показаны. Я использую в основном учебник по слайд-шоу ffmpeg и документацию по concat. Quicktime может открыть оба моих фильма, сгенерированных ffmpeg, без проблем, но, несмотря на использование одинаковых команд и сценариев для их создания, iMovie без проблем открывает один и никогда не открывает другой, независимо от того, сколько раз я воссоздаю исходные скриншоты / длительности и воссоздать видео.
У меня есть два экрана, которые захватываются из моего ввода и преобразуются в pngs, и я пытаюсь сгенерировать два фильма для импорта в iMovie и одновременного показа рядом. Для создания фильмов я использую следующую команду:
ffmpeg -f concat -i win1input.txt -vsync vfr -pix_fmt yuv420p win1.mov
ffmpeg -f concat -i win2input.txt -vsync vfr -pix_fmt yuv420p win2.mov
Где win1input.txt и win2input.txt практически идентичны (генерируются из одного и того же скрипта с разными именами файлов и временем):
file 'win1-01.png'
duration 3.07
file 'win1-02.png'
duration 2.55
...
Оба фильма генерируются и могут быть открыты по быстрому времени без каких-либо жалоб. Однако, когда я пытаюсь импортировать их в iMovie, первый фильм всегда импортируется очень хорошо, а второй выдает ошибку "Нет импортируемых файлов" и имеет 0 длительности в окне предварительного просмотра мультимедиа.
Кто-нибудь может предложить способы посмотреть фильмы и попытаться найти то, что могло бы бросить iMovie? Без более подробной ошибки я застрял. И я полностью сбит с толку относительно того, в чем может быть разница между ними, так как они генерируются из одного и того же процесса, кодека и т. Д. Любая помощь или предложения для получения дополнительной информации о фильмах будут оценены!
ОБНОВЛЕНИЕ с ffmpeg -i
выход:
$ ffmpeg -i badMovie.mov
ffmpeg version 3.3.2 Copyright (c) 2000-2017 the FFmpeg developers
built with Apple LLVM version 8.1.0 (clang-802.0.42)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.3.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-libass --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-opencl --enable-openssl --disable-lzma --enable-nonfree --enable-vda
libavutil 55. 58.100 / 55. 58.100
libavcodec 57. 89.100 / 57. 89.100
libavformat 57. 71.100 / 57. 71.100
libavdevice 57. 6.100 / 57. 6.100
libavfilter 6. 82.100 / 6. 82.100
libavresample 3. 5. 0 / 3. 5. 0
libswscale 4. 6.100 / 4. 6.100
libswresample 2. 7.100 / 2. 7.100
libpostproc 54. 5.100 / 54. 5.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'badMovie.mov':
Metadata:
major_brand : qt
minor_version : 512
compatible_brands: qt
encoder : Lavf56.40.101
Duration: 00:02:09.84, start: 0.000000, bitrate: 36 kb/s
Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x800, 35 kb/s, 0.28 fps, 25 tbr, 12800 tbn, 50 tbc (default)
Metadata:
handler_name : DataHandler
encoder : Lavc56.60.100 libx264
$ ffmpeg -i goodMovie.mov
ffmpeg version 3.3.2 Copyright (c) 2000-2017 the FFmpeg developers
built with Apple LLVM version 8.1.0 (clang-802.0.42)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.3.2 --enable-shared -- enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-libass --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-opencl --enable-openssl --disable-lzma --enable-nonfree --enable-vda
libavutil 55. 58.100 / 55. 58.100
libavcodec 57. 89.100 / 57. 89.100
libavformat 57. 71.100 / 57. 71.100
libavdevice 57. 6.100 / 57. 6.100
libavfilter 6. 82.100 / 6. 82.100
libavresample 3. 5. 0 / 3. 5. 0
libswscale 4. 6.100 / 4. 6.100
libswresample 2. 7.100 / 2. 7.100
libpostproc 54. 5.100 / 54. 5.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'goodMovie.mov':
Metadata:
major_brand : qt
minor_version : 512
compatible_brands: qt
encoder : Lavf56.40.101
Duration: 00:02:11.84, start: 0.000000, bitrate: 13 kb/s
Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x800, 13 kb/s, 0.64 fps, 25 tbr, 12800 tbn, 50 tbc (default)
Metadata:
handler_name : DataHandler
encoder : Lavc56.60.100 libx264
1 ответ
Благодаря @mulvya в комментариях, похоже, что плохой фильм попадает под требуемую частоту кадров. Повторная выборка выходного фильма с ffmpeg -i bad_movie.mov -r 5 bad_movie_fixed.mov
казалось, это исправить.
(NB я не мог понять, как включить -r
на начальном этапе создания; единственный способ, которым я мог понять, как сделать эту работу, был как отдельный повторный образец после создания фильма во-первых).