Я использую avconv для преобразования транспортных потоков MPEG в H264. Моя главная цель - сделать качественные скриншоты из исходных видеофайлов.

Файлы TS чересстрочные, поэтому я сначала конвертирую в H264 и пытаюсь сделать снимки экрана из закодированного видео. Однако качество не хватает - я вижу неровные края в высококонтрастных областях экрана, а также некоторый шум, похожий на артефакты сжатия JPEG.

Я экспериментирую с различными комбинациями предустановок качества, деинтерлейсинга Yadif и шумоподавления, но качество все еще кажется недостаточным.

Размер файла не важен - я не против, если я получу огромные видеофайлы, если скриншоты высокого качества. Время сжатия несколько важно, но я не возражаю, если этап кодирования занимает много времени.

Какие настройки я должен использовать, чтобы получить максимально качественные скриншоты из этих видеофайлов? Предполагая, что у меня есть вход 1080i, как я могу сделать снимок экрана, максимально приближенный к 1080p? Конечно, выход не может быть более качественным, чем вход, но я хочу подойти как можно ближе.

Я буду использовать avconv для извлечения скриншотов из видео, но для тестирования я использую VLC для проверки качества.

1 ответ1

1

Делаем скриншот без потерь на отметке 1 мин:

ffmpeg -i input.1080i.ts -vf yadif -ss 01:00 -vframes 1 screenshot.png

(Извините за использование ffmpeg, но команда avconv должна быть очень близкой - если не такой же)

Тем не менее, вы должны сначала убедиться, что деинтерлейсинг это путь. Просто потому , что источник 1080i не означает , что они не прогрессируют содержание чересстрочной разверткой, и в этом случае вы не должны деинтерлейсинг.

Это может быть телесиный контент, в этом случае вы должны использовать фильтр fieldmatch (надеюсь, он доступен в avconv ..):

ffmpeg -i input.1080i.telecined.ts -vf fieldmatch -ss 01:00 -vframes 1 screenshot.png

Наконец, если 1080i действительно прогрессивен, вам тоже не нужно!

ffmpeg -i input.1080i.eu.ts -ss 01:00 -vframes 1 screenshot.png

Кроме того, обратите внимание, что, хотя вы получите более быстрый результат, добавив -ss 01:00 до ввода, полученное время может быть неточным.

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