Jump to content
Калькуляторы

производительность Linux и FreeBSD на перекодировки Видео непонял, почему на любимом чертёнке в половину меньше

Значит есть машина Core2Quad 9950 (2.8GHz 6+6Mb cache, 1333Mhz),

память Kingston 1066MHz, мат.плата P5Q SE.

Запустил перекодировку видео из MPEG2 в WMV2 (Windows Media Video 2)

и чуть со стула не упал.

 

Расчетная производительность была 16 процессов на машину хуже классом,

но тут увидел что при 9ти процессах машине стало плохо:

IDLE 1-7% LoadAverage: 7-9

 

Ну подсунул Linux:

Свободно справляется с 21 процессом, на 22-ом начинает IDLE к нулю прыгать.

 

OS: Debian 5.02, FreeBSD 7.2, системы стандартные, не тюненые.

 

Подскажите что происходит.

Меня не смущает линух и холовар раздувать не надо, просто очень интересно.

Share this post


Link to post
Share on other sites
OS: Debian 5.02, FreeBSD 7.2, системы стандартные, не тюненые.

Скажите пожалуйста, а какого рода у вас исходное видео? Файлы или живой поток? Если живой поток - то очень интересно, чем вы осуществляете транскодирование. Чем-то из open source, или же какие-то коммерческие решения?

 

У меня на Core 2 Quad Q9550 (Gentoo Linux) с помощью VLC транскодируются 6 потоков из H264 в MPEG2 и средняя загрузка системы при этом находиться на уровне 85%. Вроде и декодирование H.264 не слишком тяжелое, даже под виндой тот же VLC потребляет всего 2-3 процента от аналогичного процессора... Вроде и кодирование в MPEG2 не такое уж ресурсоемкое... Но всего 6 потоков - и процессор на пределе :(

 

В вашем случае различная производительность может быть обусловлена многими факторами - от различной производительности дисковой (или сетевой - в случае живого потока) подсистемы под FreeBSD и Linux (если видео в файлах - какая ФС используется? насколько хороша ее поддержка в той или иной системе?), до различных опций, с которыми собраны приложения и библиотеки. Проще говоря от общей оптимизированности системы из коробки. Хотя могу и ошибаться, я не настолько хорошо разбираюсь в этих системах, как хотелось бы :(

Share this post


Link to post
Share on other sites
OS: Debian 5.02, FreeBSD 7.2, системы стандартные, не тюненые.

Скажите пожалуйста, а какого рода у вас исходное видео? Файлы или живой поток? Если живой поток - то очень интересно, чем вы осуществляете транскодирование. Чем-то из open source, или же какие-то коммерческие решения?

живой поток с сети из MPEG2 в WMV2 кодируется с помошью vlc 1.0.2

 

нагрузка чистая, user-space

 

Share this post


Link to post
Share on other sites

похоже что vlc откомпилен с разными уровнями оптимизации.

Share this post


Link to post
Share on other sites
похоже что vlc откомпилен с разными уровнями оптимизации.
спасибо учту, но боюсь, не сам vlc, а библиотеки,

такие как ffmpeg использующие masm/yasm и др.

Share this post


Link to post
Share on other sites
Значит есть машина Core2Quad 9950 (2.8GHz 6+6Mb cache, 1333Mhz),

память Kingston 1066MHz, мат.плата P5Q SE.

Запустил перекодировку видео из MPEG2 в WMV2 (Windows Media Video 2)

и чуть со стула не упал.

 

Расчетная производительность была 16 процессов на машину хуже классом,

но тут увидел что при 9ти процессах машине стало плохо:

IDLE 1-7% LoadAverage: 7-9

 

Ну подсунул Linux:

Свободно справляется с 21 процессом, на 22-ом начинает IDLE к нулю прыгать.

 

OS: Debian 5.02, FreeBSD 7.2, системы стандартные, не тюненые.

 

Подскажите что происходит.

Меня не смущает линух и холовар раздувать не надо, просто очень интересно.

В каком разрешении идет поток MPEG2?

По какому протоколу передается поток? (HTTP/RTP)

Каковы параметры при перекодировании в WMV2 в linux и freebsd?

 

На самом деле вариантов три:

-либо не соответствуют параметры перекодирования в первом и втором случае

-либо не соответствуют версии кодеров/декодеров

-либо как уже упоминалось выше не задействованы необходимые опции компилятора оптимальный для данного процессора, давайте не забывать, что все современные процессоры имеют в своей архитектуре суперскалярные блоки SSE.

 

Вообще, в настоящее время на перекодировании видео потоков очень интересно смотрятся графические вычислители G80, G92, G200 :) Универсальные процессоры - не лучший вариант для решения таких задач

Edited by nag-f

Share this post


Link to post
Share on other sites
Вообще, в настоящее время на перекодировании видео потоков очень интересно смотрятся графические вычислители G80, G92, G200 :) Универсальные процессоры - не лучший вариант для решения таких задач

ага

очень хочится про это расказать компиляторам =)

Share this post


Link to post
Share on other sites
В каком разрешении идет поток MPEG2?
544x576 либо 720x576
По какому протоколу передается поток? (HTTP/RTP)
UDP
Каковы параметры при перекодировании в WMV2 в linux и freebsd?
идентичные. скрипт запуска был скопирован
На самом деле вариантов три:

-либо не соответствуют параметры перекодирования в первом и втором случае

-либо не соответствуют версии кодеров/декодеров

-либо как уже упоминалось выше не задействованы необходимые опции компилятора оптимальный для данного процессора, давайте не забывать, что все современные процессоры имеют в своей архитектуре суперскалярные блоки SSE.

1. врятли в моём случае

2. боюсь так оно и есть

3. на досуге займусь

Вообще, в настоящее время на перекодировании видео потоков очень интересно смотрятся графические вычислители G80, G92, G200 :) Универсальные процессоры - не лучший вариант для решения таких задач
зато практично и универсально.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this