Кодирование видео с особыми параметрами
|
plov333
|
Дата: Четверг, 28 Марта 2013, 02:16 | Сообщение #1
|
Группа: Проверенные
Сообщений: 70
Статус: Оффлайн
|
Почитал недавно как народ бросился советовать конвертацию видео в OGV(Theora/Ogg) с добавлением субтитров и мне аж плохо стало... Но в тот же момент стало интересно проверить ваши уровень знаний в кодировании видео))) Приведу мою бывшую проблему из жизни: имею исходное видео в формате MKV (1920*1080, VC-1, 14700 kbps/ DTS 5.1 1506 kbps). Хочу пережать в AVI с получением хорошей картинки, так как исходник это рок концерт с динамическим изображением, и приятным звуком. Но мне не нравится качество конечной картинки: слишком большая пикселизация раздражающая глаз. Как мне быть? Посоветуйте что-то))) |
|
|
|
|
AlexIT
|
Дата: Четверг, 28 Марта 2013, 14:35 | Сообщение #2
|
Группа: Эксперты
Сообщений: 62
Статус: Оффлайн
|
Понятно, что рок-концерт - тяжелый материал для кодирования. Но я бы, честно говоря, не заморачивался с особыми параметрами и отдал бы все на откуп хорошему кодеру и, главное, не экономил бы на bpp. x264 в 2-3 прохода с пресетом veryslow, ресайз в зависимости от нужного битрейта с учетом сложности материала. Т.к. опыта у меня мало, чтоб сходу определить нужный bpp, для начала прошелся бы по небольшому куску с чередующимися тяжелым и легкими сценам, подбирая оптимальное соотношение размера кадра и битрейта, чтоб не раздражало глаза. Если материал шумный, добавил бы денойз. В более тонкие настройки не лез бы: x264, slow-veryslow, bpp - это главное. Все остальное, если и увеличивает качество, то не на много. ИМХО где-то на грани самовнушения, если не приглядываться к каждому пикселю под лупой.
Звук желательно было бы вообще не трогать, но если нужно получить небольшой размер, пережал бы в aac.
Делал бы все ffmpeg-ом, даже звук бы кодировал им (используя фраунгоферовский fdk_aac), чтоб не возиться со звуком отдельно.
В итоге, на все про все небольшой скриптик в 2-3 строки, в котором сначала бы подбирал параметры (битрейт/ресайз), и которым потом кодировал бы весь файл.
Сообщение отредактировал AlexIT - Четверг, 28 Марта 2013, 15:00
|
|
|
|
|
plov333
|
Дата: Пятница, 29 Марта 2013, 02:13 | Сообщение #3
|
Группа: Проверенные
Сообщений: 70
Статус: Оффлайн
|
Контейнер AVI не поддерживает форматы H.264 и AAC. Жду дальнейших советов)))
Добавлено (29 Марта 2013, 02:12)
---------------------------------------------
Рип концерт нужен именно в AVI, а не в MP4, MKV или OGV. В тех контейнерах оптимальную связку я знаю какую надо, но сейчас ищу лучшую для AVI!
Добавлено (29 Марта 2013, 02:13)
---------------------------------------------
Рип концерт нужен именно в AVI, а не в MP4, MKV или OGV. В тех контейнерах оптимальную связку я знаю какую надо, но сейчас ищу лучшую для AVI!
|
|
|
|
|
Audiophile
|
Дата: Пятница, 29 Марта 2013, 09:44 | Сообщение #4
|
Группа: Администраторы
Сообщений: 1274
Статус: Оффлайн
|
Цитата (plov333)
Контейнер AVI не поддерживает форматы H.264 и AAC
Я постоянно кодирую в AVI с помощью H.264. В VirtualDUB.
|
|
|
|
|
AlexIT
|
Дата: Пятница, 29 Марта 2013, 14:42 | Сообщение #5
|
Группа: Эксперты
Сообщений: 62
Статус: Оффлайн
|
H.264 и AAC запихнуть в AVI - не проблема. Контейнер AVI достаточно универсальный.
Проблема в том, что далеко не все плееры (особенно железные) будут это воспроизводить, а для тех что будут для них, все же, правильней mp4 или mkv с такой начинкой делать.
Для классического AVI, максимально совместимого со старым железом, лучше XVID+AC3/MP3(Lame) ничего нет. Но придется увеличить bpp, чтоб получить качество, сравнимое с исходным кодеком VC-1. |
|
|
|
|
plov333
|
Дата: Пятница, 29 Марта 2013, 21:46 | Сообщение #6
|
Группа: Проверенные
Сообщений: 70
Статус: Оффлайн
|
Цитата (Audiophile)
Я постоянно кодирую в AVI с помощью H.264. В VirtualDUB.
Без обид, но вы же не засовываете в контейнер MP4 аудио поток OGG Vorbis? Просто контейнер AVI, по изначальной спецификации, поддерживает видео кодеки спецификации MPEG-4 Part 2 (это сам видео кодек MP4 и его усовершенствования XVID и DIVX) и аудио спецификаций вплоть до MPEG-4 Part 2 (а это PCM, MP1, MP2, MP3, AC3), но при условии, что поток данных в них CBR (VBR и ABR тоже изначально не поддерживает, а если вставлять с переменным битрейтом, то получим раcсинхрон во времени длины видео и аудио потока при декодировании). А для кодеков вроде H264 и AAC есть специальные контейнеры вроде MP4 и MKV, которые и по своим возможностям лучше AVI)))
Добавлено (29 Марта 2013, 21:45)
---------------------------------------------
Цитата (AlexIT)
Проблема в том, что далеко не все плееры (особенно железные) будут это воспроизводить, а для тех что будут для них, все же, правильней mp4 или mkv с такой начинкой делать. Для классического AVI, максимально совместимого со старым железом, лучше XVID+AC3/MP3(Lame) ничего нет. Но придется увеличить bpp, чтоб получить качество, сравнимое с исходным кодеком VC-1.
А это ближе к истине. Но не стоит забывать о матрицах квантов. Для такой динамической картинки пришлось использовать матрицу H263, которая хоть как то сгладила картинку. Но за совет спасибо! )))
Добавлено (29 Марта 2013, 21:45)
---------------------------------------------
Может в дальнейшем создать темы по работе с видео, для помощи народу?
Добавлено (29 Марта 2013, 21:46)
---------------------------------------------
Сообщение отредактировал plov333 - Пятница, 29 Марта 2013, 21:47
|
|
|
|
|
MusicFan
|
Дата: Суббота, 30 Марта 2013, 20:40 | Сообщение #7
|
Группа: Проверенные
Сообщений: 344
Статус: Оффлайн
|
А чего там думать, в megui xvid, в принципе, уже настроен нормально, для бОльшего удовлетворения поменять vhq mode на wide search. Остальное можно оставить как есть. Для железных плееров главное не включать GMC и жать звук с постоянным битрейтом. Также ресайзить наверняка необходимо, навряд-ли плеер поддерживает HD. Mpeg матрицу использовать только для высоких битрейтов (опять-же, зависит от разрешения), кастомные не использовать вообще. Ещё можно попробовать с постоянным квантизером - постоянным качеством, но размер будет сильно зависить от сложности материала.
А вот как обрабатывать звук - отдельная песня, я по ней даже тему создавал. Попробовал динамический компрессор с компрессией по пикам - получилось во много раз громче, но бухать стало во столько же раз сильнее, низкочастотники на пределе
Добавлено (30 Марта 2013, 20:40)
---------------------------------------------
Там в megui в настройках кодеков звука и нормализация и компрессор есть, можно попробовать их и послушать результат
|
|
|
|
|
Audiophile
|
Дата: Суббота, 30 Марта 2013, 23:44 | Сообщение #8
|
Группа: Администраторы
Сообщений: 1274
Статус: Оффлайн
|
Цитата (plov333)
Может в дальнейшем создать темы по работе с видео, для помощи народу?
Было бы замечательно.
|
|
|
|
|
MusicFan
|
Дата: Вторник, 09 Апреля 2013, 20:08 | Сообщение #9
|
Группа: Проверенные
Сообщений: 344
Статус: Оффлайн
|
Audiophile, чтобы не париться с командной строкой ffmpeg, есть оболочка к другому не менее замечательному кодировщику - mencoder, называется просто - mediacoder. Очень мощный комбайн. Там всё то же самое можно настроить без возни с командной строкой. В принципе, очень удобно, когда, к примеру, есть ведро видео, и его нужно нашинковать с определенными параметрами в другое ведро без возни с настройкой, обрезкой, вырезкой и т.п.
В нем, кстати, и для звука энкодеров - вагон и маленькая тележка |
|
|
|
|
Audiophile
|
Дата: Вторник, 09 Апреля 2013, 21:26 | Сообщение #10
|
Группа: Администраторы
Сообщений: 1274
Статус: Оффлайн
|
MusicFan, я вот поставил Xilisoft Video Converter. И не парюсь. |
|
|
|
|
Dave_Scream
|
Дата: Среда, 19 Ноября 2014, 09:46 | Сообщение #11
|
Группа: Проверенные
Сообщений: 51
Статус: Оффлайн
|
Audiophile, судя по скриншотам какой-то он малофункциональный)
мне вот нужно как-то перевернуть на 90 градусов видео, снятое на телефон. Пробовал через Virtual Dub, но он не поддерживает контейнер mp4. Попробовал создать AVS-скрипт и спомощью него же повернуть видос - вроде получилось, подсовываю Дубу сохраняю, но видео и аудио уходит в рассинхрон. Скорее всего потому, что телефон мой снимает почему-то с Variable Frame Rate.
С ffmpeg имел дело, но что-то подзабыл про него. надо будет попробовать. Он умеет делать поворот видео-потока? UPD. умеет http://planet.frugalware.org/index.php?post_id=16
Сообщение отредактировал Dave_Scream - Среда, 19 Ноября 2014, 09:52
|
|
|
|
|
Horizon-4
|
Дата: Четверг, 20 Ноября 2014, 23:49 | Сообщение #12
|
Группа: Проверенные
Сообщений: 196
Статус: Оффлайн
|
Вашу пикселизацию создали вы сами, если, конечно, её изначально не было в исходном видеофайле. Чем выше видеопоток (биттрейт), тем выше качество видео на выходе. Считается очень хорошим качеством видео, если величина bit/pixel > 0,4 - 0,45. Я сам часто конвертирую видео, получается неплохо. видеопоток расчитываю по следующей приблизительной формуле (A x B x fps x c)/1024=kbps (video) , где A x B - разрешение (размер) видео на выходе, fps - частота кадров видео на выходе, c - требуемая величина bit/pixel
видео на выходе, kbps
- величина видеопотока (kbit/sec), которую нужно установить при конвертации видео. Что касается размера изображения видео на выходе, то всё зависит от того, на чём вы будете его смотреть. Если телевизор (монитор) в пол-стены, то уменьшать разрешение не следует, если телевизор стандартных размеров (не слишком болшой), то разрешение вполне можно уменьшить, например до 704x396 . Я пробовал в порядке эксперимента конвертировать DVD VOB видеофайлы в AVI -XviD с разрешением 400x300 для обычного телевизора, но с высоким видеобиттрейтом (чтобы получилось ~ 0,75 bit/pixel - много). Качество получилось отличным (на обычном телевизоре). Также при конвертировании видео полезно использовать видеофильтры (яркость, резкость и др.) - качество реально улучшается. Уменьшение разрешения изображения выходного файла резко увеличивает скорость конвертирования, величина видеопотока на скорость конвертирования не влияет. При наличии у меня в коллекции болшого числа известных видеоконвертеров я использую пока только две бесплатных программы: Portable Video to Video 2.9 Build 2.9.6.11 и Portable XMedia Recode 3.2.0.2. У этих программ большое число версий и некоторые из них достаточно сильно отличаются друг от друга. |
|
|
|
|
Dave_Scream
|
Дата: Воскресенье, 23 Ноября 2014, 23:53 | Сообщение #13
|
Группа: Проверенные
Сообщений: 51
Статус: Оффлайн
|
Horizon-4, я читал, что на параметр bit/pixel вообще не стоит обращать внимания. Для динамичного и для статичного видеоряда этот параметр будет вообще разный опираться на него не стоит, тем более не стоит исходя из него высчитывать необходимый битрейт при кодировании.
В одной статье не давно я прочёл простое правило и у меня буквально отлегло:
- Если стремимся к определённому размеру (ограничение носителя), то используем кодирование с указанием битрейта с двумя проходами для того, чтобы качество видео получиолсь максимальным.
- Если к размеру ограничений жёстких нет, то лучше использовать параметр качества, его эффективность так же высока, как при кодировании с двумя проходами, а необходимость в двух проходах отпадает, поэтому скорость кодирования вырастает на 40%.
Как только я это прочитал, просто стал ставить качество на 20 и всё. Получаешь одинаковое качество что на быстрых что на медленных пресетах. Просто быстрые пресеты увеличивают размер видео, а медленные уменьшают. Все эти рассчёты битрейта, высчитывание какой битрейт подойдёт лучше для этого видео и долгие двухпроходные кодирования остались позади.
Сообщение отредактировал Dave_Scream - Воскресенье, 23 Ноября 2014, 23:55
|
|
|
|
|
Xbot
|
Дата: Понедельник, 24 Ноября 2014, 13:16 | Сообщение #14
|
Группа: Проверенные
Сообщений: 226
Статус: Оффлайн
|
Цитата Dave_Scream ()
параметр качества
Quantizer в настройках называется, переводится примерно как "степень деградации изображения".
Я тоже забил на двухпроходное, смысл в нем есть только если нужно уложиться в размер. Для качества лучше указывать квантизер и применять шумодавы, если видео шумное
Цитата Dave_Scream ( )
качество на 20
Это в x264 такие значения ?
|
|
|
|
|
Dave_Scream
|
Дата: Понедельник, 24 Ноября 2014, 21:00 | Сообщение #15
|
Группа: Проверенные
Сообщений: 51
Статус: Оффлайн
|
Xbot, да, в x264. Пишут, что выбирать нужно между 19 и где-то 21.5-23. Всё что меньше 19 - избыточное качество.
Сообщение отредактировал Dave_Scream - Понедельник, 24 Ноября 2014, 21:00
|
|
|
|
|
zub35
|
Дата: Среда, 26 Ноября 2014, 17:06 | Сообщение #16
|
Группа: Проверенные
Сообщений: 61
Статус: Оффлайн
|
для x264 QP не панацея. Панацея это CRF.
Избыточное качество для глаза человеческого начинается ниже 16, но 18 самое оптимальное. Сильная деградация начинается свыше 23.
Поэтому 23 значение по умолчанию, дающее оптимальное значение сжатие без сильной потери в качестве.
За все года, что я изучал настройки x264 и результаты, скажу прямо, ставьте --preset veryslow --crf 20 и не заморачивайтесь, можно подкрутить еще --psy-rd, но это для эстетов.
Другое дело, если вы хотите сделать блю-рей рип диска без 'потери' качества, то там лучше использовать двух-проходное кодирование на основе битрейта первого прохода в CRF, да и параметры там будут, что-то вроде
--crf 18 и --aq-mode 2 и --no-fast-pskip и --direct spatial и --deblock -1:-1 и флаг --no-dct-decimate в первом проходе, в дополнение к основным настройкам пресета veryslow
А вот флаг --no-mbtree лучше использовать, если CRF меньше 20
Но все это ерунда, если вы кодируете для себя, то как мною было сказано выше заморачиваться сверх настроек veryslow и crf=20 не имеет смысла и пожалейте свои нервы и время
Сообщение отредактировал zub35 - Среда, 26 Ноября 2014, 17:09
|
|
|
|
|
Dave_Scream
|
Дата: Пятница, 05 Декабря 2014, 19:41 | Сообщение #17
|
Группа: Проверенные
Сообщений: 51
Статус: Оффлайн
|
zub35, спасибо. Я не знал о QP и CRF. Теперь почитал и стало понятно http://slhck.info/articles/crf
QP это надстройка над битрейтом, а CRF это надстройка над QP.
CRF более продвинутая техника - там где всё двигается и человек меньше обращает внимание на детали, QP немного ухудшается, а при статичной картине, где человек начинает обращать внимание на детали, QP улучшается.
Таким образом, CRF математически может даст худший результат чем QP (PSNR), но для человека CRF даст более высокое качество по ощущениям.
Intel QSV не поддерживает CRF, поддерживается только Constant Quality к сожалению.
Добавлено (05 Декабря 2014, 19:01)
---------------------------------------------
Разница между CUDA и QuickSync - CUDA кодирует в два раза медленнее, поддерживает более продвинутый CRF (не поддерживает QP)
QuickSync быстрее в 2 раза, не поддерживает CRF, только QP.
сравнил CUDA CRF=23 и Intel QP=23.
CUDA использует более продвинутый CRF, получается в двое меньший размер на выходе. минус - в два раза ниже скорость.
а это результаты на процессоре. Кодирование в 5 раз медленнее чем CUDA (в 8 раз медленнее Quick Sync), но размер ещё меньше. 63 против 80
Добавлено (05 Декабря 2014, 19:41)
---------------------------------------------
Сообщение отредактировал Dave_Scream - Пятница, 05 Декабря 2014, 19:15
|
|
|
|
|
zub35
|
Дата: Суббота, 06 Декабря 2014, 21:47 | Сообщение #18
|
Группа: Проверенные
Сообщений: 61
Статус: Оффлайн
|
-delete-
Сообщение отредактировал zub35 - Суббота, 06 Декабря 2014, 21:49
|
|
|
|