Грамотный кодинг видео в Linux

Вопросы, приемы и проблемы обработки видео

Модератор: aim

tierpunk
Сообщения: 78
ОС: Ubuntu, Debian, Centos

Re: Грамотный кодинг видео в Linux

Сообщение tierpunk » 04.03.2009 20:34

PJFry писал(а):
04.03.2009 17:59
Здравствуйте.
Подскажите пожалуйста на конкретном примере, а то я что то никак не разберусь.

Вот у меня есть сезон мультсериала. В нем 24 эпизода. Все в формате avi.
Мне необходимо перекодировать эти эпизоды в разрешение 320х240 с битрейтом видео 300, звуком мп3 128 кб/сек. Причем с субтритрами srt.
Будьте добры, опишите мне последовательность действий чтоб добиться заданного результата.

Я так понимаю что можно написать некий скрипт который я смогу использовать как программу. С помощью него открывать нужные файлы и получать конечный результат. В этой теме я что то не увидел мануала как этот скрипт сделать.

Всем заранее спасибо за ответ.

p.s. мои познания в линуксе заканчиваются на успешном запуске world of warcraft под него :) буду рад если найдется человек, который сможет меня немного консультровать по линухе. Мой жаббер pjfry@jabbus.org.

wow =)
Все намного проше чем тебе кажется, и к тому же здесь все это и намного больше описанно, так что терпения и начинай читать с 1 страницы. напиши скрипт для одного файла, а потом через for i in *.AVI; do ./encode2.sh ${i}; done
Спасибо за то что ответили на моё сообщение.
Спасибо сказали:

mixaiii
Сообщения: 93

Re: Грамотный кодинг видео в Linux

Сообщение mixaiii » 09.03.2009 22:04

тут ради интереса перекодировал (через avidemux) 1 фильм в x264 (раньше использовал xvid)
вопрос вот в чем
почему mplayer не может определить битрейд у x264

Код: Выделить всё

 mplayer out.mkv
MPlayer 1.0rc2-4.3.2 (C) 2000-2007 MPlayer Team
...
Playing out.mkv.
[mkv] Track ID 1: video (V_MPEG4/ISO/AVC), -vid 0
[mkv] Track ID 2: audio (A_VORBIS), -aid 0, -alang und
[mkv] Will play video track 1.
Matroska file format detected.
VIDEO:  [avc1]  720x576  24bpp  25.000 fps    0.0 kbps ( 0.0 kbyte/s)
xscreensaver_disable: xscreensaver wid=16777545.
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffh264] vfm: ffmpeg (FFmpeg H.264)
==========================================================================
...


у xvid определяет нормально

полазил по раздачам x264 у кого-то битрейд написал у кого-то нет
Спасибо сказали:

mixaiii
Сообщения: 93

Re: Грамотный кодинг видео в Linux

Сообщение mixaiii » 10.03.2009 18:23

глянул другие файлы в mkv (кодек х264)
нигде битрейд не определяется, так и надо?
Спасибо сказали:

Аватара пользователя
sspphheerraa
Сообщения: 1375
ОС: Gentoo

Re: Грамотный кодинг видео в Linux

Сообщение sspphheerraa » 11.03.2009 23:29

полностью поддерживается только avi контейнер, а в mkv не только битрейт не показывает...
Sspphheerraa
Спасибо сказали:

mixaiii
Сообщения: 93

Re: Грамотный кодинг видео в Linux

Сообщение mixaiii » 12.03.2009 02:19

в mp4 тоже битрейт не показывает (у меня нет)?
т.е. вообще только avi?
Спасибо сказали:

Аватара пользователя
sspphheerraa
Сообщения: 1375
ОС: Gentoo

Re: Грамотный кодинг видео в Linux

Сообщение sspphheerraa » 12.03.2009 15:58

для получения информации о видеофайле очень удобно использовать mediainfo
Sspphheerraa
Спасибо сказали:

vantu
Сообщения: 27

Re: Грамотный кодинг видео в Linux

Сообщение vantu » 19.04.2009 11:33

Влияет ли 64 бита на кодирование или нет, кто пробовал. У меня Атлон поставил Linux 64 бит, но так и не заметил по скорости.
Оптимизированны mplayer и mencoder и кодеки в частности x264 под 64 или нет. И еще столкнулся, что большенство кодеков под 64 отсутствуют (win32codecs)
libac5 вроде работает без ошибок при воспроизведении AC3 формата, libdca (DTS) вылетает с ошибкой. Ставил Debian-5 amd64. В Debian-5 32 все работает отлично.
Спасибо сказали:

Аватара пользователя
sspphheerraa
Сообщения: 1375
ОС: Gentoo

Re: Грамотный кодинг видео в Linux

Сообщение sspphheerraa » 20.04.2009 12:46

прирост есть, хоть и небольшой...
Sspphheerraa
Спасибо сказали:

Аватара пользователя
Rodegast
Сообщения: 337
ОС: Linux

Re: Грамотный кодинг видео в Linux

Сообщение Rodegast » 22.04.2009 11:10

Прирост есть mencoder и кодеки желательно пересобирать в любом случае.

> И еще столкнулся, что большенство кодеков под 64 отсутствуют (win32codecs)

Зачем тебе на linux-e win32codecs?
Спасибо сказали:

vantu
Сообщения: 27

Re: Грамотный кодинг видео в Linux

Сообщение vantu » 22.04.2009 11:40

Rodegast писал(а):
22.04.2009 11:10
Прирост есть mencoder и кодеки желательно пересобирать в любом случае.

> И еще столкнулся, что большенство кодеков под 64 отсутствуют (win32codecs)

Зачем тебе на linux-e win32codecs?

Чтобы перекодировать с wmv или mp4(divx, xvid) каго нить в другой формат, разное попадается. Не все бывает в x264, это в основном DVD видео всякое, понемногу пришли к x264.
Я часто перегоняю видео с 1280 или 1900 в 1024. Иногда комп работает сутками.

Еще вот вопрос как mencoder в фон убрать. mencoder & </dev/null не прокатывает, он постоянно в консоле пишет, а мне на задний фон нужно убрать. Придумал через cron запускать. Я иногда ставлю несколько заданий одно за другим. Например mencoder pass=1, mencoder pass=2, потом mplayer -vo null -ao pcm, normalize, oggenc audiodump и т.д. потом mkvmerge, ну и готовый файл получаем, заходим по сети и скидываем на другой комп все конвеером. Иногда играюсь параметрами, чтобы и качество не потерять и файл поменьше сделать. Так что один комп для этого держу, ну и для других расчетов. Жду когда прогу какую нибудь придумают, чтобы видеокарту для этого дела использовать, в разы меньше ждать придется.
Спасибо сказали:

Аватара пользователя
Rodegast
Сообщения: 337
ОС: Linux

Re: Грамотный кодинг видео в Linux

Сообщение Rodegast » 22.04.2009 12:30

> Чтобы перекодировать с wmv или mp4(divx, xvid) каго нить в другой формат, разное попадается

Тогда можешь по этому поводу особо не напрягаться. Основной расход ресурсов будет у x264. Все DVD кодированы MPG2, lavc с ним прекрасно справится.

> Придумал через cron запускать. Я иногда ставлю несколько заданий одно за другим.

Это не лучший вариант т.к. предсказать точное время завершения процесса очень трудно. Посмотрите в сторону Хризопеи (http://linuxforum.ru/index.php?showtopic=76355), там реализован как раз тот принцип который вы используйте. Правда модуль для x264 я ещё не написал (времени совсем нет). Но реализовать его самостоятельно совсем нетрудно для этого надо знать только основы программирования в python-е, если возникнут вопросы могу оказать содействие.
Спасибо сказали:

vantu
Сообщения: 27

Re: Грамотный кодинг видео в Linux

Сообщение vantu » 23.04.2009 13:49

Rodegast писал(а):
22.04.2009 12:30
> Придумал через cron запускать.
Это не лучший вариант т.к. предсказать точное время завершения процесса очень трудно. Посмотрите в сторону Хризопеи (http://linuxforum.ru/index.php?showtopic=76355), там реализован как раз тот принцип который вы используйте. Правда модуль для x264 я ещё не написал (времени совсем нет). Но реализовать его самостоятельно совсем нетрудно для этого надо знать только основы программирования в python-е, если возникнут вопросы могу оказать содействие.


там не надо ничего предсказывать, просто вбиваем все в текстовый файл, например с названием burn:
mencoder video.mkv -ovc x264 -x264encopts threads=2:subq=5:8x8dct:frameref=2:bframes=3:b_pyramid:weight_b:bitrate=2000:pas
s=1 -vf scale=1024:576 -nosound -o /dev/null
mencoder video.mkv -ovc x264 -x264encopts threads=2:subq=6:8x8dct:frameref=5:bframes=3:b_pyramid:weight_b:bitrate=2000:pas
s=2 -vf scale=1024:576 -nosound -o video.x264
mplayer -vo null -ao pcm -aid 0 video.mkv
mv audiodump.wav audio-rus.wav
ну и т.д.

А можно все через && сделать в одну строку, если процесс отработал без ошибок, перейдет к другой команде.

А в cron просто пишешь запустить в 10:00 в пятницу /bin/sh /video/burn
И все правда при подготовке отчета письмом cron парится и все записывает в файл, который весит потом 18Мб например, но отослать не может и запихивает только часть лога, ну а нам то че пусть. В результате все готово, если надо несколько видео то в burn вбиваешь столько, сколько надо, все обрабатывается последовательно.
Ну или можно одновременно несколько видео подряд перекодировать с опцией не threads=2, а threads=1, кстати так процессоры грузятся на 100% вместо 85%-90%, короче эфекта больше.
Спасибо сказали:

Аватара пользователя
Naruto-kun
Сообщения: 228
Статус: небритый гентушник
ОС: Gentoo(PC)/easypeasy(Netbook)

Re: Грамотный кодинг видео в Linux

Сообщение Naruto-kun » 24.04.2009 14:54

Знаю, что этот вопрос уже задавался не раз, но спрошу ещё раз. Подскажите как можно вшить в видео *.ass субтитры с сохранением стилей и тому подобного в видео с помощью mencoder и зажать с помощью кодека h264 или x264 видео в формат mp4? Правда есть проблема, если можно так сказать, единственный доступный компьютер - это мой уже далеко не новый и не мощный нотбук IBM T42, с процом пень 1.7 и 512 мб оперативки, и место на жёстком диске в данном случае на работу с mencoder могу выделить не больше 10-20 гигов.
Компьютер позволяет решать все те проблемы, которые до изобретения компьютера не существовали.
Если на вопрос ни кто не знает ответа, то пора читать описание.
Спасибо сказали:

Аватара пользователя
Rodegast
Сообщения: 337
ОС: Linux

Re: Грамотный кодинг видео в Linux

Сообщение Rodegast » 29.04.2009 12:15

> Подскажите как можно вшить в видео *.ass субтитры с сохранением стилей и тому подобного в видео с помощью mencoder

Нужно mplayer пачить посмотри выше там про это подробно написано.

vantu зачем вообще cron запускаешь? Не проще ли всё в один скрипт впихнуть?
Спасибо сказали:

Mazdader
Сообщения: 155
ОС: Debian Squeeze

Re: Грамотный кодинг видео в Linux

Сообщение Mazdader » 13.05.2009 15:55

Люди добрые, помогите! :)
Перечитал все, что смог на форуме, гуглил и так не смог решить проблему воспроизведения HDTV-видео. Думал уж пускать видео по сети, а потом смотреть на слабой машине - и тут облом (mplayer не желает играть поток от VLC - я об этом писал в соседней ветке). В итоге, думаю, что придется тупо перекодировать HD-фильм в обычный mpeg4 и смотреть. Подскажите, пожалуйста, наиболее простой способ перекодировать фильм hd-качества в обыкновенный avi (типа тех, что весят по 1.4 гига).
Спасибо сказали:

Аватара пользователя
sspphheerraa
Сообщения: 1375
ОС: Gentoo

Re: Грамотный кодинг видео в Linux

Сообщение sspphheerraa » 13.07.2009 15:35

Mazdader, - Avidemux
Sspphheerraa
Спасибо сказали:

Аватара пользователя
sspphheerraa
Сообщения: 1375
ОС: Gentoo

Re: Грамотный кодинг видео в Linux

Сообщение sspphheerraa » 21.09.2009 00:21

Заметка.

Монтирование HD контента без пережатия даже в оффтопике находится в стадии развития, чего уж говорить о линухе. Учитывая то, что HD материал очень объемный, его не встретишь в не пожатом виде.
Я не беру за источник BD или HD-DVD, или тем более рипы с них. В быту это чаще или видеокамера или спутниковый ресивер. В обоих случаях видео жмется по самое нехочу (с использованием В кадров, пирамидного принципа построения GOPов и т.д.). Линейно редактировать без пережатия такое видео очень сложно, чего уж говорить о нелинейном монтаже. Но сегодня мне это удалось :)
Итак, поскольку используется межкадровое сжатие, резать такое видео можно только по ключевым кадрам. Следовательно редактировать нужно в таком редакторе, который умеет показывать тип кадра под курсором и копировать потоки. Я пока что знаю только одну программу, удовлетворяющую этим требованиям - Avidemux. К сожалению в ней нет кнопки "undo", т.е. возврата назад, что не оставляет права на ошибку (совет тотже, что и с Синелеррой - сохраняться по чаще).
Открывающий маркер (клавиша [ ) ставим там, где должна начаться сцена, которую планируеся вырезать. По кадрам просматриваем вперед-назад какие типы кадров находятся в данном месте (кадр, тип которого указывается внизу находится перед курсором, а не после !!!! НЕ ПЕРЕПУТАЙТЕ), и ставим открывающий маркер после Р кадра (ни в коем случае не после В !!!), т.к. далее пойдет новая сцена и на нее не должны ссылаться кадры из предыдущей (можно и после I кадра, но это бессмысленно). Закрывающий маркер (клавиша ] ) ставим аналогичным путем, но так чтоб он был перед I кадром - новая сцена должна начинаться с полного кадра. В результате, после вырезки выделенного фрагмента получится стык P-I кадров, что есть "безопасно".
Таким путем можно вырезать ненужные сцены. Если надо сцены не просто вырезать, но и поменять некоторые местами, то здесь уже прийдется действовать творчески.
К примеру, таймлайн фильма разделен на три части (условно). Нам надо последнюю треть поместить между первой и второй. Итак, отмечаем вторую треть открывающим и закрывающим маркером (см. алгоритм выше). Пересчитываем ее в отдельный файл (потоки копируем). Далее вырезаем ее. После чего с помощью 'Append' добавляем пересчитанную вторую треть в конец. Таким образом получается тот что было нужно, первая треть - третья треть - вторая треть. Последний штрих, - идем на место склейки второй и третьей трети и удаляем все "вредные" кадры, т.е. так чтоб место склейки было P-I.

Все вышенаписанное проверено на 'MPEG-2 Transport Stream'. Пережатия не было - результат достигнут.
На счет 'H.264' не уверен... плохой формат для редактирования, если есть В кадры :(

ps Нет ничего невозможного, дерзайте! :drinks:
Sspphheerraa
Спасибо сказали:

Аватара пользователя
pingus
Сообщения: 104
ОС: Mandriva 2010.1

Re: Грамотный кодинг видео в Linux

Сообщение pingus » 25.12.2009 20:03

Нашел отличную статью на torrents.ru. Советую всем ознакомиться
Спасибо сказали:

Аватара пользователя
sspphheerraa
Сообщения: 1375
ОС: Gentoo

Re: Грамотный кодинг видео в Linux

Сообщение sspphheerraa » 26.12.2009 13:22

Николи, ее уже и здесь публиковал (трудно даже сказать где раньше).
Помнится, мне не понравилось отсутствия анализа DVD, - классический (с расческой) или киношный (прогрессивный). В первом случае, расческу надо IMHO оставлять, а смотреть рип уже через BOB-деинтерлейс. А во втором случае вообще никаких фильтров накладывать не надо (даже ресайз при необходимости).
А так в общем-то статья не плохая.
Sspphheerraa
Спасибо сказали:

Аватара пользователя
pingus
Сообщения: 104
ОС: Mandriva 2010.1

Re: Грамотный кодинг видео в Linux

Сообщение pingus » 26.12.2009 21:48

Это бы всё собрать в одну кучу, да скриптиком, да простеньким гуём на нкурсах пользовать... По типу dvd::rip, или офтопикового AutoGK
Спасибо сказали:

Аватара пользователя
sspphheerraa
Сообщения: 1375
ОС: Gentoo

Re: Грамотный кодинг видео в Linux

Сообщение sspphheerraa » 26.12.2009 23:08

pingus писал(а):
26.12.2009 21:48
Это бы всё собрать в одну кучу, да скриптиком, да простеньким гуём на нкурсах пользовать... По типу dvd::rip, или офтопикового AutoGK

в этом нет такой надобности, ты наверное не поверишь, но DVDRip делается одной коммандой mencoder'а ;)
Sspphheerraa
Спасибо сказали:

Аватара пользователя
Maverik
Сообщения: 498
ОС: Росинка mint 8

Re: Грамотный кодинг видео в Linux

Сообщение Maverik » 01.02.2010 23:28

Есть 2 проблем
1 В Kdenlive когда кодирую (а качество мне очень понравилось) - чембы никодировал сверху, снизу, спарва, слева появляются черные полосы как бы их убрать??
2 В OpenShut выбираю битред - какойбы не ставил один фиг прет черезстрочность.
Dragon_Lord@jabber.org
Спасибо сказали:

Аватара пользователя
Maverik
Сообщения: 498
ОС: Росинка mint 8

Re: Грамотный кодинг видео в Linux

Сообщение Maverik » 02.02.2010 17:50

С Kdenlive проблемма решена :
На меня снизошло откровение. Костыль крылся в настройках проекта - сначала нужно в настройках проекта выбрать профиль видео и тогда все будет чики чики. А у меня там стояло HDчегото_там, а поставил DV/DVD и все стало на свои места ))
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Dragon_Lord@jabber.org
Спасибо сказали:

Аватара пользователя
mixrin
Сообщения: 155
ОС: gentoo ~amd64

Re: Грамотный кодинг видео в Linux

Сообщение mixrin » 06.02.2010 12:31

Naruto-kun писал(а):
24.04.2009 14:54
Знаю, что этот вопрос уже задавался не раз, но спрошу ещё раз. Подскажите как можно вшить в видео *.ass субтитры с сохранением стилей и тому подобного в видео с помощью mencoder и зажать с помощью кодека h264 или x264 видео в формат mp4? Правда есть проблема, если можно так сказать, единственный доступный компьютер - это мой уже далеко не новый и не мощный нотбук IBM T42, с процом пень 1.7 и 512 мб оперативки, и место на жёстком диске в данном случае на работу с mencoder могу выделить не больше 10-20 гигов.


Есть три варианта. Просто покодировать аниму и закатать в mkv с субтитрами и шрифтами. Его и рекомендую. Если нужно вшить сабы в видеоряд - либо использовать патч для мплеера (про них не в курсе, может уже нормально работает, но я к этому отношусь скептически), или использовать avisynth.
proud paludis user.
Спасибо сказали:

Аватара пользователя
Mifodix
Сообщения: 373
ОС: Fedora 17 x86_64

Re: Грамотный кодинг видео в Linux

Сообщение Mifodix » 16.02.2010 21:53

Господа, подскажите, пожалуйста, как быть в такой ситуации:
1) есть DVD (PAL) с оригинальной анuлийской звуковой дорожкой (ac3);
2) есть русская отредактированная звуковая дорожка (из оригинала вырезано несколько моментов, так что пришлось редактировать и подгонять) в wav
3) нужно пережать в mkv x264 и добавить в качестве первой дорожки русскую. я так понимаю, чтобы не было проблем с синхронизацией аудио и видео нужно кодировать звук и видео вместе. как тут быть с русской дорожкой?
4) на DVD есть "гребёнка". какой фильтр использовать при кодировании mencoder?

Опции кодирования

Код: Выделить всё

mencoder "$source" -vf pullup,softskip, harddup -ovc x264 -x264encopts threads=auto:psnr:ssim:b_adapt=2:deblock:cabac:chroma_me:subq=9:partitions=all:8x8dct:me=umh:nofast_pskip:nodct_decimate:me_range=32:trellis=2:frameref=16:bframes=16:b_pyramid:weight_b:mixed_refs:direct_pred=auto:keyint=750:keyint_min=25:direct_8x8=-1:aq_mode=1:aq_strength=1.0:psy_rd=1.0,0.0:bitrate=$bitrate


Добавлено
Фильтр kerndeint в начале прекрасно справляется с гребёнкой, так что пункт 4 отпал. Всё ещё не ясно как быть с звуковыми дорожками.
Спасибо сказали:

Аватара пользователя
Mifodix
Сообщения: 373
ОС: Fedora 17 x86_64

Re: Грамотный кодинг видео в Linux

Сообщение Mifodix » 17.02.2010 15:45

Отвечаю сам себе:)
FFMPEG перекодировал wav в ac3, сделал рип DVD с копированием оригинального звука (-oac copy), а затем прикрепил русскую дорожку с помощью mkvmerge к рипу:) Рассинхрона нет.
Вот такие опции юзал для кодирования (может кому пригодится):

Код: Выделить всё

-vf kerndeint,scale,pullup,softskip,harddup -ovc x264 -x264encopts threads=auto:psnr:ssim:b_adapt=2:deblock:cabac:chroma_me:subq=9:partitions=all:8x8dct:me=umh:nofast_pskip:nodct_decimate:me_range=32:trellis=2:frameref=16:bframes=16:b_pyramid=normal:weight_b:mixed_refs:direct_pred=auto:keyint=750:keyint_min=25:aq_mode=1:aq_strength=1.0:psy_rd=1.0,0.0:bitrate=$bitrate


Правда интересует вопрос: как реагировать на постоянные

Код: Выделить всё

1 duplicate frame(s)!

во время кодирования mencoder? Это нормально вообще?:)
Спасибо сказали:

Аватара пользователя
sspphheerraa
Сообщения: 1375
ОС: Gentoo

Re: Грамотный кодинг видео в Linux

Сообщение sspphheerraa » 18.02.2010 01:00

Вот такие опции юзал для кодирования (может кому пригодится):

господи, зачем столько опций...
Sspphheerraa
Спасибо сказали:

Аватара пользователя
Mifodix
Сообщения: 373
ОС: Fedora 17 x86_64

Re: Грамотный кодинг видео в Linux

Сообщение Mifodix » 18.02.2010 01:35

sspphheerraa писал(а):
18.02.2010 01:00
Вот такие опции юзал для кодирования (может кому пригодится):

господи, зачем столько опций...

Опции взял отсюда, правда немножко отредактировал и в 2 прохода сделал. Тут ещё можно turbo присобачить к 1-му проходу и сделать меньшие subq и frameref, чтоб побыстрее. Закодировалось отлично, никаких нареканий к картинке нет.
Спасибо сказали:

snum
Сообщения: 6

Re: Грамотный кодинг видео в Linux

Сообщение snum » 19.03.2010 03:25

Друзья, я владеюсь владельцем камеры Canon HG10
AVCHD
Сжатие видео MPEG-4 AVC/H.264
Сжатие аудио Dolby Digital,2 канала
HXP высокое качество 15 Мб/с
Частота кадров 60i(PF24)

Снимаю сценами(эпизодами)
Монтажом собираюсь заниматься в Linux.
Результат хочу получить в *.mkv(мнения на счет других форматов - приветствуется!)
Подскажите, как правильнее построить монтаж(и в каких видеомонтажных программах) выше указанного формата?
Перегонять все файлы в mkv, потом создавать один файл mkv, либо переводить файлы в переходный формат, в нем склеивать обрывки в одно целое, а потом общий файл в mkv.
В монтаже видео не селен, буду признателен любой информации.
Для меня важно минимальная потеря качества.
Заранее спасибо!

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

Аватара пользователя
Rodegast
Сообщения: 337
ОС: Linux

Re: Грамотный кодинг видео в Linux

Сообщение Rodegast » 20.03.2010 16:06

Без разницы в каком софте редактировать и какие будут форматы на выходе. Все видео перегоняется в матрёшку через mmg.
Спасибо сказали: