Я использую Ffmpeg для записи видео с экрана в Windows 10:

ffmpeg -rtbufsize 1500M -f gdigrab -framerate 29.97 -draw_mouse 0 -offset_x 2777 -offset_y 344 -video_size 1280x720 -i desktop -c:v libx264 -vf format=yuv420p -preset ultrafast D:/myvideo.mpg

Если я проигрываю записанные файлы в VLC, они работают нормально. Если я воспроизведу их во встроенном проигрывателе Windows Media или в «Фильмах и ТВ», я получу код ошибки: 0xc10100be ERROR_INVALID_MODULETYPE

Есть ли какие-либо настройки, которые мне нужно добавить в Ffmpeg для использования в Windows?

1 ответ1

1

Большое спасибо @LordNeckbeard. Я забыл, что файлы "mpg" не являются контейнерами, такими как "mp4". Хорошая сводка здесь.

Таким образом, часть 1 устанавливает тип выходного файла «.mp4». Это, по крайней мере, остановило сбои и ошибки, но все еще получало черное видео в плеерах Windows. Часть 2 настраивала формат пикселя на yuv420p. Отсюда:

Кодировка для немых игроков

Возможно, вам понадобится использовать -vf format = yuv420p (или псевдоним -pix_fmt yuv420p), чтобы ваш вывод работал в QuickTime и большинстве других проигрывателей. Эти проигрыватели поддерживают только плоское цветовое пространство YUV с подвыборкой цветности 4:2:0 для видео H.264.

Вот команда ffmpeg, которая работает, я уверен, что она нуждается в дополнительной оптимизации:

ffmpeg -rtbufsize 1500M -f gdigrab -framerate 29.97 -draw_mouse 0 -offset_x 2633 -offset_y 103 -video_size 1280x720 -i desktop -pix_fmt yuv420p -c:v libx264  -preset ultrafast D:/myvideo.mp4

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .