LINUX.ORG.RU

Транскодинг налету?

 ,


0

2

Здравствуйте. Пользую транскодинг такой командой. но всё очень тормозно видеокартинка почти что слайдшоу. как быть?

transcodecmd['default'] = 'ffmpeg -i - -map 0:0 -map 0:1 -c:a copy -c:v copy -f matroska -'.split()

А при таком раскладе чёрный экран

transcodecmd['default'] = 'ffmpeg -i - -map 0:0 -map 0:1 -c:a copy -c:v copy -f mpegts -'.split()

Ответ на: комментарий от Jopich1

А куда тут мощнее? параметры не ведите?

-map 0:0 -map 0:1 -c:a copy -c:v copy

И практически ffmpeg не нагружает процессор при таком раскладе.

Apophis ()

Судя по .split(), это пхп, питон или что-то подобное. Пихать пайп с бинарными данными им на вход-выход и потом обрабатывать функциями для работы со строками - не самая здравая идея.

lizard ★★★ ()
Ответ на: комментарий от Jopich1

Я HD на mips роутере перепаковывал. Даже иногда вообще не тормозило.

Shadow ★★★★★ ()
Ответ на: комментарий от Apophis

Это ж жадное ненужно. Купи кабельное ТВ уже.

Shadow ★★★★★ ()
Ответ на: комментарий от Apophis

При таком раскладе нагружается io и память.

где-то вытаскиваются данные с медленного диска,
копируются в память,
//начинается пайп
//отправляющая сторона
передаются в проц,
передаются в память,
//принимающая сторона
передаются в проц,
передаются в память
//обработка на принимающей стороне (пока ffmpeg)
передаются в проц,
передаются в память
//теперь обработка результата ffmpeg
передаются в проц,
передаются в память
//split()
передаются в проц,
передаются в память
//дальнейшая обработка внутри пхп (присвоение переменной)
передаются в проц,
передаются в память
//допустим переменная просто отправляется по сети прям так (на самом деле нет)
передаются в проц,
передаются в память

При таком раскладе посмотри что на самом деле нагружает процессор, потому что он вообще должен спать большую часть времени.

anonymous ()
Ответ на: комментарий от Apophis

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

lizard ★★★ ()

1. Эо не транскодинг, а конвертирование копированием. 2. Зачем map? Просто: -i in/file -c copy f matroska(или mpegts) out/file. Если несколько звук-дорожек, тогда map. 3. Эта операция сверх лёгкая и может выполняться любым моломощным процем. *Только в случае неудобоваримого видео или звук формата могут быть проблемы. Поэтому нужно показывать мету(MediaInfo) потока.

xradio ()
Ответ на: комментарий от Apophis

Я выше написал, что map и нужен для выбора дрожек. Написал также показать метаданные потока. Пример: Мой телек при видео AVC, звук-дороге pcm_s16be и -f mpegts не будет воспроизводить со звуком, только при -f matroska. Поэтому нужна мета из медиаинфы.

xradio ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.