Крышка — не только. Крышка это система распределение усилия на большую площадь.
Не знаю как у AMD, ибо вообще ни разу не имел дела с ними, а в тех же Proliant DL360 система крепежа радиаторов такая, что без крышки кристал продавило бы через тектолитовую подложку внутрь слота думаю. Но там и Processor Kit поставляется чуть ли не с уже приклееным радиатором
И обломать кристалл как на первых атлонах?
Все ж крышка не просто так нужны. Во-первых она рассеивает выделяемое тепло на большую площадь, с которой снимается радиатором. Во-вторых крышка распеределяет достаточно большое усилие прижима на большую площадь подложки,
Mod-H264-Streaming-Nginx-Version2 собственно и использует парсинг всей этой фигни (mdat atom moov) для нахождения вырезанию нужного. Имелось ввиду, что он не использует те «метаданные», которые использует Flash, и которые, насколько я понимаю, и переносят в начало всякие MP4Box и Yamdi
> В flv можно (нужно) точно так же запихнуть в начало метаданные. yamdi в помощь.
Да, у нас это используется. Только вот стоковый flv модуль был сделан для отдачи flv (доставляет строка «static u_char ngx_flv_header[] = „FLV\x1\x1\0\0\0\x9\0\0\0\x9“;»).
> А модуль nginx с метаданными mp4 знаком, чтобы не приходилось елозить?
Ну скажем так. Ввиду того, что написан он довольно коряво, ему это необязательно. Исходя из запрошенного времени, битрейта каждого трека и т.п. инфы о ролике, он находит offset до ближайшего keyframe «математикой». Почему в кавычках? А вот именно потому, что он дергает не метаданные (которых может и не быть, что логично), а делает анализ стуктуры файла, и после этого делает вырезку куска из каждого трека. То есть файл практически всегда читается полностью. Именно поэтому нагрузка на диск больше, а не потому что он «елозит» по файлу.
По сути — когда в особо неудачном mp4 файле нет ни метаданных, ни хинтинга, модуль тот читает весь файл, и по сути собирает все метаданные заново, основываясь на которых выдергивает нужные куски треков, выровненные по ключевым кадрам.
Ха. Вот и вылезла проблема с перемоткой, на которую я наткнулся в том числе. На самом деле — flv модуль не умеет по честному стримить x264 внутри flv. Он тупо его отдает как range. Что сносит голову любому плееру. Ибо при этом не отдаются никакие равильные метаданные.
>А вот стриминг mp4 использовать крайне не рекомендуется.
Не рекомендуется опять же в лоб. Дело вот в чем. Так как для mp4 требуется смещение в секундах, то модулю надо найти соответствующий byte range. Решается прогоном через mp4box с перемещением метаданных в начало, и принудительным хинтингом, к примеру по умолчанию, в 500 мс. При этом плееру отдаются метаданные с соответсвием time-keyframe-byte-offset. По которым программер плеера должен делать принудительно seek в обозначенные позиции времени. При этом модулю не приходится «елозить» по файлу в поисках нужного офсета, ибо он знает его из метаданных.
В девелоперских целях оно у нас работает именно на том x264 модуле, без проблем
Ну так ведь это совершенно разные логики :-)
Хотя все равно — я сторонник «академического» отделения как логики представления, так и бизнес логики от собственно самого оформления. Мухи к мухам, котлеты к котлетам. Зато у нас верстальщик может натворить шаблон зная только html, и понятия не имея о программировании, циклах, наследовании (скажите зачем вообще верстальщику это знание?) и других страшных словах.
>PHP как шаблонизатор не справляется с основной своей задачей — отделить логику от представления.
А смарти и твиг капец как отделяют ее? Или циклы в шаблонах это есть отделение логики? По-моему наоборот. Мне лично проще внутри php-цикла наложить данные на кешированный где душе угодно шаблон элемента списка. При этом ни в одном шаблоне вообще нет никакой логики — только чистое представление
Вот тольк одно непонятно, зачем автор гонит x264 в контейнер flv? Flash умеет и mp4 контейнер играть, а вот модули, например к nginx, реализующие псевдостриминг работают или с flv контейнером и родным кодеком (flv модуль) или x264 и только с mp4 контейнером (x264_streaming_module). Поэтому выгоднее кодить в mp4 сразу
некоторая армейская аппаратура позволяет делать сплит на одной частоте, передача на LSB, прием на USB. Я в свое время пробовал, честно говоря голосом такой «дуплекс» не очень.
В основном такие «каналы» делают под закрытие аппаратурой гарантированной стойкости в симплекс режиме на небольших расстояниях (0.5-1.5 кВт выхода на 100-200 км), чтоб быстро отработать на «дежурной сети» закрытым симплеком с разрешения основного узла и не перестраивать передатчик.
На «160 метрах» ночью приличное количество народу голосом сидит в районе 2100 кГц. Правда с обилием армейских связистов, которым на БД ночью делать нечего (каюсь, сам там работал в армии). Но таким проще, обычно есть два приемника и быстро переключающийся передатчик высокой по сравнению с любителями мощности.
Не знаю как у AMD, ибо вообще ни разу не имел дела с ними, а в тех же Proliant DL360 система крепежа радиаторов такая, что без крышки кристал продавило бы через тектолитовую подложку внутрь слота думаю. Но там и Processor Kit поставляется чуть ли не с уже приклееным радиатором
Все ж крышка не просто так нужны. Во-первых она рассеивает выделяемое тепло на большую площадь, с которой снимается радиатором. Во-вторых крышка распеределяет достаточно большое усилие прижима на большую площадь подложки,
Все точно так же
Кодим:
ffmpeg -i source.file -s 640x360 -f mp4 -vcodec libx264 -vpre hq -threads 0 -b 1500k -bt 1500k -r 25 -g 25 -acodec libfaac -ab 96k -ar 22050 filename.mp4
Хинтим:
MP4Box -inter 500 filename.mp4
Натачиваем кривоватый h264.code-shop.com/trac/wiki/Mod-H264-Streaming-Nginx-Version2
PROFIT!
Да, у нас это используется. Только вот стоковый flv модуль был сделан для отдачи flv (доставляет строка «static u_char ngx_flv_header[] = „FLV\x1\x1\0\0\0\x9\0\0\0\x9“;»).
> А модуль nginx с метаданными mp4 знаком, чтобы не приходилось елозить?
Ну скажем так. Ввиду того, что написан он довольно коряво, ему это необязательно. Исходя из запрошенного времени, битрейта каждого трека и т.п. инфы о ролике, он находит offset до ближайшего keyframe «математикой». Почему в кавычках? А вот именно потому, что он дергает не метаданные (которых может и не быть, что логично), а делает анализ стуктуры файла, и после этого делает вырезку куска из каждого трека. То есть файл практически всегда читается полностью. Именно поэтому нагрузка на диск больше, а не потому что он «елозит» по файлу.
По сути — когда в особо неудачном mp4 файле нет ни метаданных, ни хинтинга, модуль тот читает весь файл, и по сути собирает все метаданные заново, основываясь на которых выдергивает нужные куски треков, выровненные по ключевым кадрам.
>А вот стриминг mp4 использовать крайне не рекомендуется.
Не рекомендуется опять же в лоб. Дело вот в чем. Так как для mp4 требуется смещение в секундах, то модулю надо найти соответствующий byte range. Решается прогоном через mp4box с перемещением метаданных в начало, и принудительным хинтингом, к примеру по умолчанию, в 500 мс. При этом плееру отдаются метаданные с соответсвием time-keyframe-byte-offset. По которым программер плеера должен делать принудительно seek в обозначенные позиции времени. При этом модулю не приходится «елозить» по файлу в поисках нужного офсета, ибо он знает его из метаданных.
В девелоперских целях оно у нас работает именно на том x264 модуле, без проблем
Хотя все равно — я сторонник «академического» отделения как логики представления, так и бизнес логики от собственно самого оформления. Мухи к мухам, котлеты к котлетам. Зато у нас верстальщик может натворить шаблон зная только html, и понятия не имея о программировании, циклах, наследовании (скажите зачем вообще верстальщику это знание?) и других страшных словах.
А смарти и твиг капец как отделяют ее? Или циклы в шаблонах это есть отделение логики? По-моему наоборот. Мне лично проще внутри php-цикла наложить данные на кешированный где душе угодно шаблон элемента списка. При этом ни в одном шаблоне вообще нет никакой логики — только чистое представление
В основном такие «каналы» делают под закрытие аппаратурой гарантированной стойкости в симплекс режиме на небольших расстояниях (0.5-1.5 кВт выхода на 100-200 км), чтоб быстро отработать на «дежурной сети» закрытым симплеком с разрешения основного узла и не перестраивать передатчик.