FFmpeg. Проблемы при кодировании

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

Модератор: Модераторы разделов

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

Re: FFmpeg. Проблемы при кодировании

Сообщение Mifodix »

Rodegast писал(а):
15.09.2011 16:23
> Что такое VOB`ы? Это один большой файл порезанный на куски размером 1024. По этому cat - это то, что доктор прописал.

А вас не смущает то что на диске может быть несколько фильмов каждый из которых имеет свою временную шкалу?

> В чем это выражается?

Ну вот к примеру совсем недавно про это тема была: ffmpeg вырезание куска фильма из .VOB и запись в .avi

Rodegast, давайте ближе к делу. Как правильно соединить vob-файлы?
Спасибо сказали:
Аватара пользователя
sspphheerraa
Сообщения: 1375
ОС: Gentoo

Re: FFmpeg. Проблемы при кодировании

Сообщение sspphheerraa »

Тю, блин, уже ж писали выше:
$ mplayer dvd:// -dumpstream -dumpfile file.mpg
Sspphheerraa
Спасибо сказали:
Аватара пользователя
Mifodix
Сообщения: 373
ОС: Fedora 17 x86_64

Re: FFmpeg. Проблемы при кодировании

Сообщение Mifodix »

sspphheerraa писал(а):
15.09.2011 17:36
Тю, блин, уже ж писали выше:
$ mplayer dvd:// -dumpstream -dumpfile file.mpg

Не, этим я и самым давно пользуюсь и в начале темы спрашивал про аналог в ffmpeg. Может быть есть ещё какой-нибудь вариант.
sspphheerraa, расскажите про 3-проходное кодирование. Неужели вообще нет никакого выигрыша от 3 проходов?
Спасибо сказали:
Аватара пользователя
Rodegast
Сообщения: 337
ОС: Linux
Контактная информация:

Re: FFmpeg. Проблемы при кодировании

Сообщение Rodegast »

> Что-то не виду относящегося к теме склейки..

Это я с сылкой напутал сейчас ссылка исправлена.

> Как правильно соединить vob-файлы?

Обычно я ничего не соединяю, а просто копирую нужные главы с нужными дорожками:
mencoder -ovc copy -oac copy -mc 0 -of mpeg -mpegopts format=dvd:tsaf -alang rus,ru -sid 32 -dvd-device /home/rodegast/dvd.iso dvdnav://1 -o /home/rodegast/dvd.mpg
Спасибо сказали:
Аватара пользователя
alkesta
Сообщения: 345
ОС: Fedora

Re: FFmpeg. Проблемы при кодировании

Сообщение alkesta »

Rodegast писал(а):
15.09.2011 18:12
> Что-то не виду относящегося к теме склейки..

Это я с сылкой напутал сейчас ссылка исправлена.

Похоже что, агрумент ввиде фразы "А на самом деле глупо." является единственным. :D Где ссылка то на то, что склейка VOB-файлов фильма через cat приводит к проблемам?
Спасибо сказали:
Аватара пользователя
Rodegast
Сообщения: 337
ОС: Linux
Контактная информация:

Re: FFmpeg. Проблемы при кодировании

Сообщение Rodegast »

Я вполне доходчиво объяснил в чём проблема и привёл ссылку где подобная проблема проявляются. Не пойму что вам ещё надо.
Спасибо сказали:
Аватара пользователя
alkesta
Сообщения: 345
ОС: Fedora

Re: FFmpeg. Проблемы при кодировании

Сообщение alkesta »

Rodegast писал(а):
15.09.2011 23:31
Я вполне доходчиво объяснил в чём проблема и привёл ссылку где подобная проблема проявляются. Не пойму что вам ещё надо.

Я не вижу никакого доходчивого объяснения. Можно процитировать Ваше доходчивое объяснение?
Если речь про эту ссылку
Rodegast писал(а):
15.09.2011 16:23
Ну вот к примеру совсем недавно про это тема была: ffmpeg вырезание куска фильма из .VOB и запись в .avi

то, я прогнал страницу поиском и не нашёл ни одного упоминания команды cat.

Rodegast писал(а):
15.09.2011 23:31
Не пойму что вам ещё надо.

Если сказали А ввиде фразы "глупо", то скажите и B, т.е. аргументировано объясните почему порезанный (на куски размером 1024 Mb + остаток) фильм, глупо обратно склеить через cat. Я не нашёл ни одного упоминания в сети, что данный метод приводит к каким-нибудь проблемам.
Спасибо сказали:
Аватара пользователя
Rodegast
Сообщения: 337
ОС: Linux
Контактная информация:

Re: FFmpeg. Проблемы при кодировании

Сообщение Rodegast »

> почему порезанный (на куски размером 1024 Mb + остаток) фильм, глупо обратно склеить через cat

Потому что как правило на DVD несколько заголовков (читай фильмов) и вы их пытайтесь все собрать в один большой файл. Причём каждый из этих заголовков имеет свою временную шкалу, по этому у результата она будет полностью неправильной т.е. для разделения файла вы не сможете использовать временные метки.
Спасибо сказали:
Аватара пользователя
alkesta
Сообщения: 345
ОС: Fedora

Re: FFmpeg. Проблемы при кодировании

Сообщение alkesta »

Rodegast писал(а):
16.09.2011 16:43
.. как правило на DVD несколько заголовков (читай фильмов) ..


Имеется ввиду реклама перед фильмом, меню, сам фильм и доп материалы?
Спасибо сказали:
Аватара пользователя
Rodegast
Сообщения: 337
ОС: Linux
Контактная информация:

Re: FFmpeg. Проблемы при кодировании

Сообщение Rodegast »

1) На одном диске может быть несколько фильмов.
2) Доп. материалы.

Реклама и меню скорее всего будут находится в отдельных файлах по этому их можно не учитывать.
Спасибо сказали:
Аватара пользователя
sspphheerraa
Сообщения: 1375
ОС: Gentoo

Re: FFmpeg. Проблемы при кодировании

Сообщение sspphheerraa »

Mifodix писал(а):
15.09.2011 17:50
sspphheerraa, расскажите про 3-проходное кодирование. Неужели вообще нет никакого выигрыша от 3 проходов?

Не знаю, я им никогда не пользовался, да и 2х проходным в принципе тоже. На doom9.org сами разработчики кодека рекомендуют использовать -crf метод (не вижу причин не пользоваться их советом), а про 3х и более проходное кодирование как-то писали, что смысла практически нет. Если интересно, поищите на тамошнем форуме.

зы Все вышесказанное касается x264 кодека.
Sspphheerraa
Спасибо сказали:
Аватара пользователя
Mifodix
Сообщения: 373
ОС: Fedora 17 x86_64

Re: FFmpeg. Проблемы при кодировании

Сообщение Mifodix »

sspphheerraa писал(а):
17.09.2011 17:50
Mifodix писал(а):
15.09.2011 17:50
sspphheerraa, расскажите про 3-проходное кодирование. Неужели вообще нет никакого выигрыша от 3 проходов?

Не знаю, я им никогда не пользовался, да и 2х проходным в принципе тоже. На doom9.org сами разработчики кодека рекомендуют использовать -crf метод (не вижу причин не пользоваться их советом), а про 3х и более проходное кодирование как-то писали, что смысла практически нет. Если интересно, поищите на тамошнем форуме.

зы Все вышесказанное касается x264 кодека.

Однопроходное кодирование с -crf хорошо, когда неважен размер выходного файла.
Надо мне попробовать сравнить 2 и 3 прохода с аналогичными настройками в mencoder самостоятельно.
Спасибо сказали:
Аватара пользователя
Mifodix
Сообщения: 373
ОС: Fedora 17 x86_64

Re: FFmpeg. Проблемы при кодировании

Сообщение Mifodix »

Итак, я сжал 4 минуты видео менкодером в x264 с 2 и 3 проходами соответственно.
Разница в размере составила 0,1 МБ: 57,5 МБ двухпроходный результат и 57,4 МБ трёхпроходный.
Теперь насчёт качества: в приложении скриншоты одного и того же кадра двухпроходного видео и трёхпроходного. Можете скачать, увеличить и рассмотреть получше. В исходном видео буддистский мальчик поворачивает голову и медленно уходит в даль. Увеличьте кадры побольше и обратите внимание на силуэт головы. Да-да, трёхпроходный режим дал более качественный результат и силуэт головы, а также тень на шее, выглядит более чётко, затылок не сливается с фоном, в тоже время два прохода смазали границы. Правда надо отметить, что такая разница о-о-о-очень незначительна и на других участках скриншота не наблюдается, хотя возможно это связано со статичностью фона.
В целом, если судить по другим скриншотам, 3 проход добавил чуточку резкости.

Вывод: небольшая разница есть! Но за такую ничтожную разницу в качестве придётся заплатить временем дополнительного прохода, которое может быть и 2 часа, и 3 для относительно большого фильма или HD 1080p. А вот коротенькие ролики можно было бы и в 3 прохода кодировать:) Так что я не поддерживаю решение разработчиков ffmpeg запретить трёхпроходное кодирование, в то время как кодек x264 позволяет сделать сколько угодно проходов. Зачем урезать функциональность сторонней библиотеки?


P. S. Каким-то хреном прожглись субтитры в видео, да ещё и украинские, не обращайте внимания:)
Вложения
screen02_3.jpg
screen02_2.jpg
Спасибо сказали:
Аватара пользователя
Mifodix
Сообщения: 373
ОС: Fedora 17 x86_64

Re: FFmpeg. Проблемы при кодировании

Сообщение Mifodix »

Нашёл достаточно интересный способ подбора битрейта. В кратце, предлогается сделать выборку из ~2550 кадров, равномерно выдернутых из исходного видео по 50 кадров, пожать полученную выборку с -crf=18 (20 для новых версий x264) и проанализировать полученный лог (кванты I, P, B-кадров и т. д.) В статье для производства выборки используется скрипт для avisynth:

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

selectTotal1=framecount()/100
selectTotal2=selectTotal1*2
selectrangeevery(selectTotal2,50)

Как бы подобное провернуть на баше и ffmpeg? Т. е. фактически надо как-то узнать количество кадров в видео и брать по 50 кадров через каждые общ.колич.кадров/50 кадров.
Спасибо сказали:
Аватара пользователя
Mifodix
Сообщения: 373
ОС: Fedora 17 x86_64

Re: FFmpeg. Проблемы при кодировании

Сообщение Mifodix »

Знатоки, как сделать обратный телесин средствами ffmpeg?
Спасибо сказали:
Ответить