Клуб Видео

Как выложить видео с максимальным качеством?

12 февраля 2009, 12:18
Добрый день! Подскажите pls новичку, как залить видео с максимальным качеством (и какое максимальное качество поддерживает Яндекс.Видео)? Т.е. интересует конкретный способ - в каком формате, с каким разрешением и битрейтом надо заливать для достижения максимального качества? Спасибо!
50 комментариев
Подписаться на комментарии к посту
Без модерации плодятся темы-дубли. Уже было - http://clubs.ya.ru/4611686018427389313/replies.xml?item_no=2451 Так ничего конкретного не ответили. В глубине другой ветки узнал, что в HD обрабатываются только ролики до 10 минут.
врут я грузил и больше
Ссылка? :)
Нет не врут. Пока в High quality дополнительно конвертируются ролики до 10 минут длительности.
Ну так, а какие ещё есть ограничения? Какой формат видеопотока (размер, битрейт), каким кодеком, какое аудио (стерео воспринимается на роликах длинее 10 минут)? Море вопросов. Утолите жажду знаний. ;)
Я, если честно, не очень понял о чем вы. Любой ролик конвертируется в FLV видео обычного качества вне зависимости от входного кодека, длительности, стерео-моно аудио дорожки и т.п. Единственное синтетическое ограничение - это максимальный размер оригинала, сейчас 750 mb. Если у вас не экзотический кодек, то мы переконвертируем все что вы нам скармливаете. Дополнительно, те ролики, которые меньше 10 минут конвертируются в видео высокого качества. Формат в который конвертируем мы, вы можете посмотреть сами, скачав видео обычного качества и высокого.
Можем конечно и посмотреть в итоговых файлах (которые по идеологии сервиса вроде как и не скачиваются), но ведь эти настройки могут быть изменены на сервисе и в случае изменения проще было бы точно знать, какой итоговый битрейт будет у ролика. Вот простой вопрос - ролик 1 час, но в стерео. После обработки стерео сохранится? Более изощерённый вопрос, требующий знания внутренней логики работы кодека - есть ли формат, который будет переупакован в FLV без повторного пережатия, в случае соответствия определённым техническим нормам? А хотя бы аудиопоток не пережимать? Каким он должен быть? AAC или MP3? С каким максимальным битрейтом? То есть, это вопрос не к случаю, когда я ролик из фотоаппарата или мобилки друзьям показываю, а когда в профессиональном видеоредакторе ролик готовиться к публикации именно на Яндекс.Видео. На конвертацию видео в HD влияет только тайминг? А битрейт? 5 минутный ролик можно оцифровать и в 300Mb и в 750Mb, только есть ли смысл, если потом всё переконвертируется сурово понизив битрейт. Любое повторное пережатие видео снижает качество, а при маленьком разрешении ещё и видимые артефакты наложить может. Желательно иметь возможность этого избежать. Это если в планах развития сервиса стоит размещение качественного контента, а не только мобильного видео.
Пример типичного ролика за авторством ДжумТВ, где критично отсутствие пережатия - обзор программ, скриптов, сайтов, мини-уроки и т.п. Где мелкие детали интерфейса поплывут при пережатии и сам формат видео (размер полезной площади экрана, которая следует за курсором) заранее предопределён.
Любой ролик перекодируется в видео обычного качества: оригинальная картинка вжимается пропорционально в рамку 320x240, битрейт потока 350 kb/s, видео кодек FLV частота кадров в секунду - 30, аудио кодек MP3 (22050 Hz, stereo, 64 kb/s). И в видео высокого качества, если его длительность больше 10 минут: оригинальная картинка вжимается пропорционально в рамку 450x338, битрейт потока 512 kb/s, видео кодек h264 частота кадров в секунду - 30, аудио кодек MP3 (44100 Hz, stereo, 128 kb/s). Если вы будете заливать видео заведомо лучше чем мы получаем при конвертации, вы получите наилучшее качество конвертации.
Пардон,
если его длительность не больше 10 минут
А если аудиопоток соответствует техническим требованиям, его можно не пережимать? Видео формата 16x9 получается будет 450x253px? Какой оптимально процент закладывать для наилучшего качества? Размер в пикселях, битрейт? YouTube советует вообще 640x480 (это +42% процента; 4х3) и 1280x720 (это аж +184%, 16х9). Нужна константа - зная размер кадра можно подсчитать битрейт, сложнее, но всё же зная битрейт можно подсчитать максимальный размер кадра. Так как ролики ограничены до 10 минут. Вызывает опасение 30 кадров в секунду - большинство роликов всё же 25 кадров в секунду. Рассинхронизация потоков при ресэмплировании? Как жёстко действует ограничение по времени для роликов в высоком разрешении? Могут быть расхождения в секунду из-за ресэмплинга (когда из 25 кадров в секунду делают 30, хотя погрешность будет в меньшую сторону). 599 секунд - HD, 601 секунда - LowQuality? А 600 секунд???
Кодеки работают так, что они всегда пережимают, даже если входной и выходной формат одинаков. Чем больше вы дадите оригинал, тем лучше он пожмётся. Больше разрешение, больше битрейт. Не знаю откуда YouTube взял эти цифры, но 640x480 на 1mbit/s-ном потоке должно хватать за глаза. То есть данных будет с избытком. Рассинхронизации не будет, не переживайте. Мы понимаем, что оригинал может быть с другим fps.
Ок. Широкоформатное видео интересует. Значит, делаем картинку с соотношением сторон 16x9 - 640x360px (+42 процента площади кадра) и битрейтом 1024 kbps (+50% потока), аудио в MP3-CBR 192kbps (+50% потока, постоянный битрейт чтобы упростить синхронизация потоков при конвертации). Получаем файл длительность 599 секунд (25 кадров в секунду), в XviD (avi) размером примерно 90-100Mb. И лучше снимать 30 кадров в секунду...
А можно как-то понять-высчитать какой будет трафик в мегабайтах при онлайн просмотре, если допустим ролик был загружен в 100 мегабайт. Сколько от него останется при перекодировке на вашей стороне?

Или может в самом плеере бы писали.
Ролика будет два, обычное качество и HQ/HD качество, если ролик меньше 10 минут и по разрешению больше или равен 640x480.

Обычное качество - mp4, 450x334 (или меньше, если оригинал меньше), 512 kbit/s
В зависимости от разрешения оригинала и битрейта выходной файл будет меньше, а на сколько, без оригинала сказать трудно. Может кстати так выйти, что он будет больше :)

Если вы загружаете ролики, примерно одинаковой длительности, одинаковых параметров (разрешение и битрейт), то выходные файлы будут приблизительно одно и тогоже размера -- то есть достаточно посмотреть на пару таких файлов и сделать из этого выводы.

Но бывают и некоторые особенности. Например, если взять ваш ролик:
http://video.yandex.ru/users/tsikalovsky/view/48/
То, размер оригинала 288 mb (320x240, 494 kb/s)
А размер mp4 после конвертации - 323 mb (320x240, 512 kb/s)

То есть в вашем случае, файл был ниже того качества, которые мы получаем после конвертации, в результате мы его пережали так, что его размер стал больше :(. Посмотрим что с этим можно сделать, записал (циферки 2682).
Я вот второй день читаю ваши пояснения здесь в клубе. Сегодня перекодировал это же видео в 640х480 с потоком в 1mbit/s, как вы и советовали. Правда в 25 кадров. Получилось 680 мегабайт. Залил.
http://video.yandex.ru/users/tsikalovsky/view/51/

Но разницы не заметил. Думал при размере 450x334 вы перекодируете и будет все четко. А видео "плывет". Смотрю другие ролики. Там все так четко на картинке. Вот к примеру: http://video.yandex.ru/users/tsikalovsky/view/34/

совсем путаница получается :(

Там есть одна хитрость. Сейчас вы смотрите FLV низкого, который мы получаем сравнительно быстро. Сейчас ваш ролик переконвертируется еще раз в mp4 формат и картинка после этого станет лучше.

И ещё, вы пережимаете в 640x480 оригинал, который на самом деле больше этого разрешения или меньше?
Оригинал .mpg 720x576 почти без сжатия. около 2 гектар весом.

Я почему в 640х480 делал: чтобы и волки сыты, и овцы целы - качество хорошее, плюс не так много весит, плюс заливать не 3 дня да и Яндексу мои лишние полтора гектара не нужны :)

Что посоветуете? Или так делать видео или еще что-то покрутить в параметрах рендеринга? Хочется добится максимума :)
Можно покрутить еще разрешение, чтобы максимально втиснуть его в наше ограничение по размеру - 750 mb. Это если задача сделать ролик наибольшего качества. На самом деле можно провести такой эсперимент -- вот сейчас доконвертируется mp4 из 640x480, попробуйте залить его же, заранее смаштабированного пропорчионально в рамку 450x334, 512 kbit/s (ниже этого делать особой надобности нет) и сравнить качество. Если особых нареканий на картинку не будет, используйте этот формат -- чем меньше, тем быстрей конвертируется.
Т.е. готовить видео "под Яндекс" - 450х334, 512 kbit/s - это будет оптимальный вариант по качеству, размеру и скорости рендеринга на стороне Яндекса?

В иных раскладах, Яндекс все равно приведет к этим же параметрам.
Ну, так как у вас ролики длинные - дольше 10 минут, то высокого качества всеравно не будет. Особо можно не заморачиваться. Но можно сравнить, чтобы уж наверняка.

Просто даже то, что у вас используется тотже самый кодек (h264) не гарантирует, что не будет потерь в качестве картинки. Поэтому я советовал картинку делать больше по разрешению, чтобы она заведомо пережималась с более незаметными потерями. Переконвертация проходит так -- сначала распаковывается, получается не сжатая картинка, а потом она сжимается и упаковывается. Но MPEG -- это сжатие с потерями всегда, поэтому одна и также картинка (одинакого разрешения на входе и выходе) будет пережата с потерями по качеству. Другое дело, что эти потери могут быть настолько незначительны, что вы их не заметите. Поэтому я предлагаю посмотреть на минимальное качество и сравнить с тем, что получается при пережатии 640x480. Если вы не заметите ухудшений, то можно пользоваться минимальным.
Большое спасибо!

p.s. Куда тут в карму добавить плюсов? :)
Я помониторю конвертацию в mp4. Как закончится, сообщу... Что-то долго уже конвертируется, в 12:54 началось.
Залил файл с параметрами 450х334, 512 битрейт
http://video.yandex.ru/users/tsikalovsky/view/52/

Судя по доступной картинке это еще не окончательный вариант (?)

Как думаете отличаются видео в онлайне?
Это еще flv низкого качества, я скажу, как можно будет посмотреть. Начало конвертироваться в 11:55:52.
Готово
Размер ролика 325 mb
Ситуация запуталась.
Мне кажется что ролик которые был 450х334 четче, чем ролик в 640х480.....

Как думаете? Возможно ли такое...
Возможно, да. Мне кажется лучше остановиться на втором варианте. Он на 5 минут быстрей конвертируется :)
Сообщаю, готово :)
Да-да.. я случайно заглянул на видео и увидел. Разница очевидная!!! А сколько ж весит теперь онлайн трафик с таким качеством?

Осталось провести тест с видео 450-го размера и будет нам счастие :)

326 mb, и я думаю больше этого размера не будет.
Я сделал так же как Вы посоветовали,транслировать стали 4х3 и пропорции все ушли,а вот когда залил 720х432 всё стало на свои места полный экран 16х9
А почему не 48 000Hz для аудио при высоком качестве? Распространённый формат аудиопотока сейчас.
Если перейдем когда-нибудь с mp3 на на aac будет 48, наверное. Сейчас это вообщем не важно.
Важно или нет - это кому как... :-) Камеры снимают в 48.
Спасибо, теперь понятно.
Вообще-то FLV это контейнер, а не кодек. Я вот тоже пытаюсь найти ответ на вопрос, как избежать напрасной потери качества из-за декомпрессии-компрессии. Неужели нельзя самостоятельно пожать видео так, как оно должно быть. Для людей, профессионально занимающихся обработкой видео, это не прблемма, а вот качество материала на выходе очень критично.
Ну можно было написать Sorenson Spark, только это мало кто бы понял :) Над качеством работают. Залить так, чтобы использовался уже ваш вариант нельзя, всегда будет перекодироваться.
super.sasha-9000
25 июня 2013, 01:09

fak-off is fak-on

Так, что ли:
ДА!Но я хочу сам-дайте мастер-класс,Пожалуйста.
Выделяем код мышкой, нажимаем Ctrl+C, кликаем мышкой в окошко куда хотим вставить (должно понимать HTML код), жмём Ctrl+V и сохранить. Всё. :))
Вот-вот,я кликал,а получал только текст самого кода,а не ролик.Вы сами видели. http://www.stream-support.ru/forum/index.php?topic=3066.msg29208#new
Форум не поддерживает вставку html кода. Вы же сами видите. Туда никак не вставить.
А как точно определить,кто поддерживает?
Опыт. Быстрее всего - пробным путём. Ну, и внимательно читать правила и помощь. ;)