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

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

Модератор: aim

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

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

Сообщение sspphheerraa » 29.03.2010 14:21

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

Гы, как раз далеко не все, т.к. mmg не понимает MPEG-TS контейнер на входе (на данный момент). А AVCHD идет как раз в нем. Так что прийдется перегонять или в элементарный поток, или еще во что-то...
snum, формат и кодек у Вас очень плохой для редактиования :( Сейчас и под виндой нет видеоредакторов, которые умеют монтажить AVCHD без проблем, а под линухом так тем более.
Удачи Вам, если найдете решение - дайте знать (у меня пока нормально не получалось).
Sspphheerraa
Спасибо сказали:

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

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

Сообщение Rodegast » 31.03.2010 20:43

>Гы, как раз далеко не все, т.к. mmg не понимает MPEG-TS контейнер на входе (на данный момент). А AVCHD идет как раз в нем. Так что прийдется перегонять или в элементарный поток, или еще во что-то...

Я не думаю что на выходе редактора будет MPEG-TS :) А перегнать его в mkv довольно просто:

mencoder -ovc copy -oac copy -of lavf -lavfopts format=matroska файл.m2t -o файл.mkv
Спасибо сказали:

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

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

Сообщение sspphheerraa » 31.03.2010 23:20

Rodegast писал(а):
31.03.2010 20:43
Я не думаю что на выходе редактора будет MPEG-TS :)

А что будет? avi мы не рассматриваем, матрешка тоже в ряд ли там будет... ну mp4 еще из возможных :)
Sspphheerraa
Спасибо сказали:

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

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

Сообщение Rodegast » 03.04.2010 20:24

>А что будет?

Не ужели MPEG-PS отменили? И почему мы не рассматриваем avi?
Спасибо сказали:

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

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

Сообщение sspphheerraa » 04.04.2010 18:00

Драсьте :)
MPEG-PS - это формат DVD, он не может содержать в себе AVCHD.
AVI не рассматриваем как стабильный вариант (можно конечно, но от глюков будете не застрахованы; кроме того он не все аудио-кодеки поддерживает).
Sspphheerraa
Спасибо сказали:

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

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

Сообщение Rodegast » 04.04.2010 19:13

Теперь мне всё стало понятно... Я всё это время имел в виду перевод в mkv после редактирование, а
sspphheerraa перевод для редактирования. Т.е. мы говорили про совсем разные вещи.
Спасибо сказали:

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

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

Сообщение snum » 04.04.2010 20:40

Спасибо за советы)))
Сложно определится в чем производить редактирование... вернее даже не так - в каком формате лучше рабоатть по минимальным потерям при конвертировании и минимальных затратах ресурсов компьютера без зависаний...
либо mts->mkv и пытаться ролик склеивать в мкв... либо mts-> X videoformat -> mkv...
Спасибо сказали:

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

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

Сообщение sspphheerraa » 05.04.2010 12:45

Rodegast писал(а):
04.04.2010 19:13
Теперь мне всё стало понятно... Я всё это время имел в виду перевод в mkv после редактирование, а
sspphheerraa перевод для редактирования.

Я имел в виду перевод в принципе (хоть до, хоть после).
Правильно говорили великие, - любой разговор надо начинать с терминологии.
AVCHD, это не кодек... и не формат. Это стандарт, который подразумевает использование формата/контейнера MPEG-TS, видеокодека семейства x264 (h.264/avc/mpeg4-part10/etc...), и аудио, обычно 'ААС' (но могут быть и другие).
Чтобы редактировать такое видео, необходим редактор, который: Во-первых понимает MPEG-TS на входе, во-вторых умеет правильно работать с x264 (определять пирамидное предсказание В-кадров, и при разрыве-склейке пересчитывать эти зависимости). Таких редакторов и под оффтопик не особо-то и есть. Avidemux, кроссплатформенный, в принципе можно использовать, т.к. он показывает тип кадра под курсором и имеет солидный арсенал кодеков и контейнеров как на входе так и на выходе. Но опять же полной поддержки х264 нету, и возможны как артефакты, так и рассинхрон со звуком (причем плавающий (!)).

По поводу перегонки в другие форматы/контейнеры. На данный момент для х264 видео и аас звука возможны такие контейнеры: MPEG-TS, Matroska, OGM, mp4(QuickTime). AVI тоже можно причислить к этому списку, но пользоваться на удачу :)

snum писал(а):
04.04.2010 20:40
Спасибо за советы)))
Сложно определится в чем производить редактирование... вернее даже не так - в каком формате лучше рабоатть по минимальным потерям при конвертировании и минимальных затратах ресурсов компьютера без зависаний...
либо mts->mkv и пытаться ролик склеивать в мкв... либо mts-> X videoformat -> mkv...

Я бы не морочил голову, и все бы делал в mts.
Sspphheerraa
Спасибо сказали:

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

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

Сообщение Rodegast » 05.04.2010 20:24

> Я имел в виду перевод в принципе (хоть до, хоть после).

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

> Я бы не морочил голову, и все бы делал в mts.

Здесь многое зависит от редакторов, я сомневаюсь что таже Cinelerra поддерживает mts.
Спасибо сказали:

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

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

Сообщение sspphheerraa » 06.04.2010 20:27

Rodegast писал(а):
05.04.2010 20:24
тут многое зависит от того использует ваша камера при сжатии В кадры, или нет

все бытовые - используют, а не_бытовые - не используют x264 ;)
Rodegast писал(а):
05.04.2010 20:24
Здесь многое зависит от редакторов, я сомневаюсь что таже Cinelerra поддерживает mts.

Cinelerra не поддерживает mts, хотя поддерживает QuickTime (.mov/.mp4).
Но для HD я бы не рекомендовал cinelerr'у.

Я бы делал в Avidemux. А если монтаж не линейный, то уже импровизировал бы :)
Sspphheerraa
Спасибо сказали:

Аватара пользователя
Nekosargot
Сообщения: 159

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

Сообщение Nekosargot » 07.04.2010 13:06

Товарищи, можно ли как-то заставить Mencoder переконвертировать целую папку с видеофайлами в x264 + Faac ? Я имею ввиду автоматически. Собсно интересуюсь этим ввиду небезграничности места на жестких дисках, а также тем, что на практике пересжатые в х264 (2прохода) из Xvid фильмы весят в два раза меньше без видимых потерь в качестве.
Sempron LE-140 3.8Ghz |2gb ddr2|1TB|Debian stable x86-64 + Ratpoison
Она: Женатые мужчины для меня не существуют, как класс.
Он: Только как объекты. © Bash
Спасибо сказали:

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

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

Сообщение Rodegast » 07.04.2010 19:53

> Я бы делал в Avidemux. А если монтаж не линейный, то уже импровизировал бы

Avidemux это не совсем редактор, к примеру переходов у него нет. Хотя на вкус и цвет...

> Товарищи, можно ли как-то заставить Mencoder переконвертировать целую папку с видеофайлами в x264 + Faac ?

http://fireforge.net/projects/hrizopea/ только качай последнюю версию.
Спасибо сказали:

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

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

Сообщение sspphheerraa » 01.05.2010 12:32

Rodegast, по поводу HDV->DVD (начало в теме про Avidemux). Не совсем понятен мне механизм рассинхрона звука при кодировании видео. Если механизм изменения порядка полей подразумевает задержку (временную) определенного поля на 20ms (для PAL) на каждом кадре, - то да рассинхрон звука будет нарастающий. Но я обнаружил интересную вещь:
Кодировал коммандой

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

mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd:tsaf -vf phase=a,scale=720:576:1,harddup -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=9000:keyint=12:vstrict=0:aspect=16/9:alt:top=0 -ofps 25 room-1.m2t -o movie01.mpg

затем открыл полученное видео в avidemux, чтобы посмотреть на кадры. Так вот, видео было склеенное, т.е. присутствовали стыки совершенно разных сцен, и в полученном видео на стыке появился кадр содержащий одно поле от предыдущей сцены, и другое от следующей (хорошо видно - как будто две картинки в одном). И это был _кадр_ :)
Следовательно механизм изменения порядка полей другой. Я так понимаю, что пересматривается весь кадровый видеоряд по полям. Т.е. к примеру, первый кадр нового видео будет содержать (в моем случае) из исходного видео - нижнее поле первого кадра и верхнее поле второго кадра; второй кадр нового видео будет содержать нижнее поле второго кадра и верхнее поле третего кадра исходного видео, и т.д.
Что скорее всего и получилось в моем случае, - нижнее поле от предыдущей сцены и верхнее от последующей.

Рассинхнон звука составил около секунды (для ролика в 3мин 9сек), вот резюме менкодера по окончании кодирования

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

mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd:tsaf -vf phase=a,scale=720:576:1,harddup -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=9000:keyint=12:vstrict=0:aspect=16/9:alt:top=0 -ofps 25 oper-room-1.m2t -o movie01.mpg
MEncoder SVN-r29796-4.3.4 (C) 2000-2009 MPlayer Team
success: format: 0  data: 0x0 - 0x24ef3974
TS file format detected.
VIDEO MPEG2(pid=68) AUDIO MPA(pid=69) NO SUBS (yet)!  PROGRAM N. 1
VIDEO:  MPEG2  1440x1080  (aspect 3)  25.000 fps  25000.0 kbps (3125.0 kbyte/s)
[V] filefmt:29  fourcc:0x10000002  size:1440x1080  fps:25.000  ftime:=0.0400
==========================================================================
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
AUDIO: 48000 Hz, 2 ch, s16le, 384.0 kbit/25.00% (ratio: 48000->192000)
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)
==========================================================================
PACKET SIZE: 2048 bytes, deltascr: 43885
Opening video filter: [expand osd=1]
Expand: -1 x -1, -1; -1, osd: 1, aspect: 0.000000, round: 0
Opening video filter: [harddup]
Opening video filter: [scale w=720 h=576 interlaced=1]
Opening video filter: [phase=a]
==========================================================================
Opening video decoder: [mpegpes] MPEG 1/2 Video passthrough
Could not find matching colorspace - retrying with -vf scale...
Opening video filter: [scale]
The selected video_out device is incompatible with this codec.
Try appending the scale filter to your filter list,
e.g. -vf spp,scale instead of -vf spp.
VDecoder init failed :(
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Unsupported PixelFormat -1
Selected video codec: [ffmpeg2] vfm: ffmpeg (FFmpeg MPEG-2)
==========================================================================
audiocodec: framecopy (format=50 chans=2 rate=48000 bits=16 B/s=48000 sample-1)
Limiting audio preload to 0.4s.
Increasing audio density to 4.
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
[swscaler @ 0x1348b90]BICUBIC scaler, from yuv420p to yuv420p using MMX2
[swscaler @ 0x1617e50]BICUBIC scaler, from yuv420p to yuv420p using MMX2
videocodec: libavcodec (720x576 fourcc=3267706d [mpg2])
Writing header...1f ( 0%)  0.00fps Trem:   0min   0mb  A-V:0.000 [0:0]
INITV: 0.200, 0.160, fps: 25.000

1 duplicate frame(s)!
Pos:   0.9s     23f ( 0%) 15.58fps Trem:   2min  49mb  A-V:0.082 [0:384]
Skipping frame!
TS_PARSE: COULDN'T SYNC%) 17.38fps Trem:   0min 154mb  A-V:0.064 [6344:384]
Pos: 189.0s   4727f (100%) 17.38fps Trem:   0min 154mb  A-V:0.064 [6346:384]
Flushing video frames.
Writing index...

Overhead: 1.953% (3105338 / 159000006)
Writing header...

Video stream: 6346.952 kbit/s  (793369 B/s)  size: 149978482 bytes  189.040 secs  4727 frames

Audio stream:  384.000 kbit/s  (48000 B/s)  size: 9065088 bytes  188.856 secs

видно, видео - 189.040 secs, аудио - 188.856 secs
Хотя в другом видеоролике (комманда кодирования таже), рассинхрон составил всего лишь 64ms
Sspphheerraa
Спасибо сказали:

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

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

Сообщение Rodegast » 01.05.2010 22:38

При автоопределении полей mencoder пытается сам расставить поля в нужном порядке т. о. в разных местах одного и том же видеоряда возможны 3 варианта изменения полей: 1. Ничего не меняется 2. Задержка нижнего поля 3. Задержка верхнего поля. Отсюда и разный рассинхрон на разных роликах.
Спасибо сказали:

Аватара пользователя
BSDevil
Сообщения: 112
ОС: MAC OS X

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

Сообщение BSDevil » 11.06.2010 12:56

Помогите пожалуйста. Второй день man mencoder штудирую

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

bsdevil@localhost ~ $ mencoder -of lavf -lavfopts format=mp4 -oac copy -ovc lavc -lavcopts acodec=libfaac:abitrate=128:vcodec=libx264:vpass=2:turbo:vbitrate=750 -o test.mp4 test.avi
MEncoder SVN-r29796-4.3.4 © 2000-2009 MPlayer Team
успех: формат: 0  данные: 0x0 - 0x12c11000
Обнаружен AVI формат файла!
[aviheader] Найден видео поток, -vid 0
[aviheader] Найден аудио поток, -aid 1
VIDEO:  [DX50]  640x480  24bpp  23.976 fps  1701.9 kbps (207.8 kbyte/s)
[V] формат:3  fourcc:0x30355844  размер:640x480  fps:23.976  ftime:=0.0417
** MUXER_LAVF *****************************************************************
REMEMBER: MEncoder's libavformat muxing is presently broken and can generate
INCORRECT files in the presence of B-frames. Moreover, due to bugs MPlayer
will play these INCORRECT files as if nothing were wrong!
*******************************************************************************
OK, exit.
Открываю видео фильтр: [expand osd=1]
Expand: -1 x -1, -1; -1, osd: 1, aspect: 0.000000, round: 0
==========================================================================
Открываю декодер видео: [ffmpeg] FFmpeg's libavcodec codec family
Выбран видеокодек: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4)
==========================================================================
аудиокодек: копирование кадров (формат=2000 цепочек=2 скорость=48000 битов=0 Б/с=24000 образец=1)
Movie-Aspect - 1.33:1 - выполняю предварительное масштабирование
для коррекции соотношения сторон фильма.
videocodec: libavcodec (640x480 fourcc=34363268 [h264])
2pass failed: filename=divx2pass.log
ФАТАЛЬНАЯ ОШИБКА: Не могу инициализировать видеодрайвер!
Movie-Aspect - 1.33:1 - выполняю предварительное масштабирование
для коррекции соотношения сторон фильма.
videocodec: libavcodec (640x480 fourcc=34363268 [h264])
2pass failed: filename=divx2pass.log
ФАТАЛЬНАЯ ОШИБКА: Не могу инициализировать видеодрайвер!

Выходим...
Изображение
Спасибо сказали:

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

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

Сообщение Naruto-kun » 24.02.2011 16:01

Может, кто подскажет как в linux можно сделать рип с мкв-шной web-dl?
К примеру, на входе есть:
Видео: 1280x720 (1.78:1), 23.976 fps, AVC ~3807 kbps avg, 0.172 bit/pixel
А на выходе хотел бы получить что-то вроде:
Видео: 720x400, остальные характеристики не так важны (насколько я понял, такое преобразование ещё называют демуксом)
Попробовал сделать с помощью avidemux фильтром mplayer resize (указал выходной размер 720x400). В итоге получилась авишка с разрешением, как и нужно 720x400), но размером всего 300 мб и ужасного качества. При этом, все web-dlripы (с разр. 720x400), которые я видел, весят в среднем метров 600-700, да и качество у них получше.
PS. Заранее спасибо за ответ.
Компьютер позволяет решать все те проблемы, которые до изобретения компьютера не существовали.
Если на вопрос ни кто не знает ответа, то пора читать описание.
Спасибо сказали:

Аватара пользователя
alkesta
Сообщения: 345
ОС: Fedora

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

Сообщение alkesta » 24.02.2011 16:23

Naruto-kun писал(а):
24.02.2011 16:01
Может, кто подскажет как в linux можно сделать рип с мкв-шной web-dl?
К примеру, на входе есть:
Видео: 1280x720 (1.78:1), 23.976 fps, AVC ~3807 kbps avg, 0.172 bit/pixel
А на выходе хотел бы получить что-то вроде:
Видео: 720x400, остальные характеристики не так важны (насколько я понял, такое преобразование ещё называют демуксом)
Попробовал сделать с помощью avidemux фильтром mplayer resize (указал выходной размер 720x400). В итоге получилась авишка с разрешением, как и нужно 720x400), но размером всего 300 мб и ужасного качества. При этом, все web-dlripы (с разр. 720x400), которые я видел, весят в среднем метров 600-700, да и качество у них получше.
PS. Заранее спасибо за ответ.

"остальные характеристики не так важны" и "ужасного качества" взаимоисключающие вещи.

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

$ ffmpeg [input options] -i INPUTFILE [output options] -s 720x400 OUTPUTFILE

остальное зависит от параметров выбранного для кодирования кодека.

Вообще, если нравится пользоваться гуями, посмотри на HandBrake очень хорошо сделана (можно задать target size).
Спасибо сказали:

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

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

Сообщение Naruto-kun » 24.02.2011 16:36

Дейстиветельно, глупость сморозил. Выражусь точнее:
скажем на входе:
Видео кодек: H.264 (формат: mkv)
и
Видео: 1280x720 (1.78:1), 23.976 fps, AVC ~3807 kbps avg, 0.172 bit/pixel
а на выходе хотел бы получить что-то вроде:
Видео кодек: XviD (формат: avi)
и
Видео: 720x400 (1.8:1), 23.98 fps, ~1840 Kbps, 0.266 bit/pixel
или
Видео: 720x400 (1.8:1), 23.98 fps, ~2004 kbps, 0.29 bit/pixel (в этих пределах или как-то так).

Какие в таком случае бы стоило выставить флаги ffmpeg?
Компьютер позволяет решать все те проблемы, которые до изобретения компьютера не существовали.
Если на вопрос ни кто не знает ответа, то пора читать описание.
Спасибо сказали:

Аватара пользователя
alkesta
Сообщения: 345
ОС: Fedora

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

Сообщение alkesta » 24.02.2011 16:45

Naruto-kun писал(а):
24.02.2011 16:36
а на выходе хотел бы получить что-то вроде:
Видео: 720x400 (1.8:1), 23.98 fps, ~1840 Kbps, 0.266 bit/pixel
Какие в таком случае бы стоило выставить флаги ffmpeg?


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

$ ffmpeg -i INPUTFILE -ac 2 -ar 48000 -acodec libfaac -ab 256k -r 23.98 -s 720x400 -vcodec libx264 -vpre slower -vpre main -level 30  -b 1840k -maxrate 10M -bufsize 10M -threads 0  -aspect 720:400 OUTPUTFILE

Вроде так. Кстати в качестве контейнера лучше использовать mp4, так как aac и x264 родные для него потоки. Иначе лучше mkv.

Sorry, просмотрел про XviD.. А точно нужен XviD? От него уже папахивает, в смысле, XviD - архи несовременный (мягко говоря), как и контейнер avi.
Спасибо сказали:

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

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

Сообщение Naruto-kun » 24.02.2011 16:57

Спасибо, сейчас попробую, позже отпишусь о результатах.
Компьютер позволяет решать все те проблемы, которые до изобретения компьютера не существовали.
Если на вопрос ни кто не знает ответа, то пора читать описание.
Спасибо сказали:

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

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

Сообщение Naruto-kun » 24.02.2011 17:26

alkesta писал(а):
24.02.2011 16:45
Вроде так. Кстати в качестве контейнера лучше использовать mp4, так как aac и x264 родные для него потоки. Иначе лучше mkv.
Sorry, просмотрел про XviD.. А точно нужен XviD? От него уже папахивает, в смысле, XviD - архи несовременный (мягко говоря), как и контейнер avi.

Если это возможно может подскажете как будет выглядеть команда если использовать: 1) XviD (в данном случае, как я понимаю, на выходе получится - output.avi); 2) mp4 (в данном случае, как я понимаю, на выходе получится - output.mp4); 3) mkv (в данном случае, как я понимаю, на выходе получится - output.mkv).
Хочу, наглядно посмотреть, что в итогде будет лушче. Да и на будущее, чтобы знать.
Компьютер позволяет решать все те проблемы, которые до изобретения компьютера не существовали.
Если на вопрос ни кто не знает ответа, то пора читать описание.
Спасибо сказали:

Аватара пользователя
alkesta
Сообщения: 345
ОС: Fedora

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

Сообщение alkesta » 24.02.2011 17:48

Naruto-kun писал(а):
24.02.2011 17:26
Если это возможно может подскажете как будет выглядеть команда если использовать:
1) XviD (в данном случае, как я понимаю, на выходе получится - output.avi);
2) mp4 (в данном случае, как я понимаю, на выходе получится - output.mp4);
3) mkv (в данном случае, как я понимаю, на выходе получится - output.mkv).
Хочу, наглядно посмотреть, что в итогде будет лушче. Да и на будущее, чтобы знать.

Про XviD не подскажу, потому что не пользуюсь им для кодирования. Разница в сотношении качество/размер между XviD и x264 очевидна.
Можно посмотреть в FAQ 3.8 How do I encode Xvid or DivX video with ffmpeg? или глянуть в man.
avi, mp4, mkv - это контейнеры, на качество они не влияют. Качество определяется потоками (aac и x264) в них (контейнерах).
Спасибо сказали:

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

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

Сообщение Naruto-kun » 24.02.2011 18:33

Ладно, покопаюсь в манах. А насчёт того, почему хочется всё-таки имено xvid - воспроизводится на большинстве плееров.
ps. В любом случае, буду рад любым предложениям относительно моего вопроса.
Компьютер позволяет решать все те проблемы, которые до изобретения компьютера не существовали.
Если на вопрос ни кто не знает ответа, то пора читать описание.
Спасибо сказали:

qwerta
Сообщения: 136
ОС: Debian Wheezy

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

Сообщение qwerta » 24.02.2011 22:14

Если mencoder собран с поддержкой xvid то кодировать можно командой:

mencoder -vf scale=720:400 -ovc xvid -oac mp3lame -xvidencopts fixed_quant=2.8:profile=asp5 -lameopts cbr:br=192:aq=0 -o OUTFILE.avi INFILE.mkv

Как раз на выходе получается видеофайл хорошо поддерживаемый аппаратными плеерами. Хотя по собственному опыту картинка 720 на 400 великовата, на дивидишниках тормозить будет. Лучше 640 на 368.
А начинал я с Xebian
Спасибо сказали:

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

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

Сообщение Naruto-kun » 24.02.2011 22:54

qwerta писал(а):
24.02.2011 22:14
Если mencoder собран с поддержкой xvid

Если я правильно понимаю, mencoder входит в состав mplayer, а mplayer у меня собран с поддержкой большинства библиотек, в том числе и xvid.

qwerta писал(а):
24.02.2011 22:14
то кодировать можно командой:
mencoder -vf scale=720:400 -ovc xvid -oac mp3lame -xvidencopts fixed_quant=2.8:profile=asp5 -lameopts cbr:br=192:aq=0 -o OUTFILE.avi INFILE.mkv

Спасибо, запустил предложенный вами способ, процесс пошёл. Интересно, как долго займёт процесс конвертации.

qwerta писал(а):
24.02.2011 22:14
Как раз на выходе получается видеофайл хорошо поддерживаемый аппаратными плеерами. Хотя по собственному опыту картинка 720 на 400 великовата, на дивидишниках тормозить будет. Лучше 640 на 368.

У меня как раз, на плеере эти 720x400 запускаются без проблем, но только если xvid (проверено опытным путём).

upd. mencoder дошёл до:

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

Skipping frame!
Pos: xxx.xs xxxxf ( x %) x.xxfps Trem: xxmin xxxmb A-V:x.xxx [xxxx:xxx]

- числа меняются, судя по всему, процесс идёт.

Я так понимаю, в данном случае: xxmin - сколько осталось до конца конвертации, а xxxmb - итоговый размер файла выходного?
Компьютер позволяет решать все те проблемы, которые до изобретения компьютера не существовали.
Если на вопрос ни кто не знает ответа, то пора читать описание.
Спасибо сказали:

qwerta
Сообщения: 136
ОС: Debian Wheezy

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

Сообщение qwerta » 24.02.2011 23:10

Naruto-kun писал(а):
24.02.2011 22:54
Я так понимаю, в данном случае: xxmin - сколько осталось до конца конвертации, а xxxmb - итоговый размер файла выходного?


Да :) Хотя цифры предварительные и могут еще поменяться.
А начинал я с Xebian
Спасибо сказали:

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

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

Сообщение Naruto-kun » 25.02.2011 01:51

Чтож, вроде получилось. Единственное, что смущает размер - всего 300 с лишним мб. Хотя большинство web-dlripов, которые я видел весили в среднем мб по 500-700. Например (часть данных одного из встреченных мной web-dlripов):

Код:

Video Format : MPEG-4 Visual Format profile : Streaming Video@L1 Format settings, BVOP : Yes Format settings, QPel : No Format settings, GMC : No warppoints Format settings, Matrix : Default Codec ID : XVID Codec ID/Hint : XviD Duration : 43mn 52s Bit rate : 1 840 Kbps Width : 720 pixels Height : 400 pixels Display aspect ratio : 16/9 Frame rate : 23.976 fps Resolution : 24 bits Colorimetry : 4:2:0 Scan type : Progressive Bits/(Pixel*Frame) : 0.266 Stream size : 577 MiB (82%) Writing library : XviD 50

Не могу понять, за счёт чего получился такой большой размер.

upd. Всё, понял. Всё дело в разном битрейте.
Попробовал добавить bitrate=2000 (ради теста) в команду:

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

mencoder -vf scale=720:400 -ovc xvid -oac mp3lame -xvidencopts fixed_quant=2.8:profile=asp5 -lameopts cbr:br=192:aq=0 -o OUTFILE.avi INFILE.mkv

получилось:

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

mencoder -vf scale=720:400 -ovc xvid -oac mp3lame -xvidencopts fixed_quant=2.8:profile=asp5:bitrate=2000 -lameopts cbr:br=192:aq=0 -o OUTFILE.avi INFILE.mkv

но произошла ошибка:

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

videocodec: XviD (720x400 fourcc=44495658 [XVID])
xvid: par=0/0 (vga11), displayed=720x405, sampled=720x400
xvid: you can't mix Fixed Quantizer Rate Control with other Rate Control mechanisms
FATAL: Cannot initialize video driver.
Exiting...

Зато запустилось ещё так:

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

mencoder -vf scale=720:400 -ovc xvid -oac mp3lame -xvidencopts bitrate=2000 -lameopts cbr:br=192:aq=0 -o OUTFILE.avi INFILE.mkv

Убрал из команды: fixed_quant=2.8:profile=asp5: , заменив на bitrate=2000 .

Компьютер позволяет решать все те проблемы, которые до изобретения компьютера не существовали.
Если на вопрос ни кто не знает ответа, то пора читать описание.
Спасибо сказали:

qwerta
Сообщения: 136
ОС: Debian Wheezy

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

Сообщение qwerta » 25.02.2011 08:46

Вообще то опции fixed_quant= и bitrate= взаимоисключающие. И при значении fixed_quant=2 получается самый большой размер файла и качество картинки. Опция profile=asp5 отвечает за совместимость с бытовыми плеерами. И в принципе на сайте mplayer есть статья в которой все прекрасно объясняют ну и без man mplayer тоже никуда.
А начинал я с Xebian
Спасибо сказали:

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

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

Сообщение Naruto-kun » 25.02.2011 13:54

qwerta писал(а):
25.02.2011 08:46
Вообще то опции fixed_quant= и bitrate= взаимоисключающие. И при значении fixed_quant=2 получается самый большой размер файла и качество картинки. Опция profile=asp5 отвечает за совместимость с бытовыми плеерами. И в принципе на сайте mplayer есть статья в которой все прекрасно объясняют ну и без man mplayer тоже никуда.

Странно, почему тогда получился такой небольшой размер при fixed_quant= (да и битрейт был выбран небольшой при кванте было ~800 вроде бы),
Кстати, несмотря на то, что указал битрейт 2000, в конечном итоге у выходного файла битрейт 1000.
Компьютер позволяет решать все те проблемы, которые до изобретения компьютера не существовали.
Если на вопрос ни кто не знает ответа, то пора читать описание.
Спасибо сказали:

qwerta
Сообщения: 136
ОС: Debian Wheezy

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

Сообщение qwerta » 25.02.2011 14:38

Ну в моих опциях fixed_quant=2.8 , но если так охота можете попробовать поставить fixed_quant=2 и сравнить. Ну и еще можно проверить в /etc/mplayer или ~/.mplayer лежит ли там файл mencoder.conf возможно там находятся настройки кодирования которые положили создатели пакета с их видением как должен кодировать mencoder (если файл есть его нужно будет во что-нибудь переименовать). Но если вам так нужен большой битрэйт можете попробовать такую строчку:

mencoder -vf scale=720:400 -ffourcc xvid -ovc lavc -oac mp3lame -lavcopts vcodec=mpeg4:vqscale=2.8:vmax_b_frames=2:mbd=2:v4mv:dia=4:trell:qns=3 -lameopts cbr:br=192:aq=0 -o INFILE.avi OUTFILE.mkv

Правда кодировать будет значительно дольше.
А начинал я с Xebian
Спасибо сказали: