LINUX.ORG.RU

Как добавить keyframe в каждый кадр видео в формате OGV без изменения качества видео?

 keyframe,


0

2

Имеется сырое видео в формате *.ogv, двадцать кусков. Из этих кусков я монтирую итоговое видео в редакторе OpenShot. И есть проблема.

Если в OpenShot разрезать кусок, или убрать несколько кадров в начале куска, то видео, содержащееся в этом куске случайным образом искажается:

- Либо имеем в начале несколько кадров черного цвета (звук идет)
- Либо имеем в начале несколько кадров зеленого цвета (звук идет)
- Либо имеем в начале несколько кадров розовых квадратиков (звук идет)
- Либо имеем нормальный кусок

То же самое и с концом куска - он может закончиться нормальным кадром видео, а может закончиться черным кадром, и убрать его невозможно, а можно только убрать ~2 секунды конца. Или остаться с черным кадром.

Примерно про такую проблему спрашивали здесь:

http://askubuntu.com/questions/806137/how-to-end-video-in-openshot-without-bl...

Ответа нет.

Я подозреваю, что эта проблема как-то связана с ключевыми кадрами. В редакторе Kino (с марсианским интерфесом) эта проблема решается каким-то пересчетом ключевых кадров, и хранения именно этого индекса отдельно. В OpenShot такого нет.

Поэтому, чтобы обойти проблему, я хочу скормить OpenShot подготовленное сырое видео, в котором каждый кадр ключевой.

Как и чем можно такое действие провернуть? Желательно увидеть готовую команду преобразования файла *.ogv.

★★★★★

видео, в котором каждый кадр ключевой.

Это жрёт ну очень дофига места. Посмотри, есть ли там переход к следующему/предыдущему ключевому кадру и режь по ним. Они как правило вставляются в момент резкой смены картинки (и периодически, если картинка меняется несильно), обычно именно этот момент и нужен.

anonymous
()

А что, если другой редактор взять?

anonymous
()

Какой openshot, всмысле версия? Когда последний раз тыкал 2.х он был ужасно глючным.

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

p.s. с ogv никогда не работал, но думаю kdenlive его поддерживает.

anonymous
()

Имеется сырое видео в формате *.ogv

как его можно называть сырым, если theora сжимает с потерями ? --- а какова вообще структура ogv ? I,P,B кадры ?

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

OpenShot v 1.4.3, Debian Jessie

Он страшно глючный, если делаешь разрезку какого-нить куска, то после этого рандомно может жить 5-10 секунд. В начале этого не было, но как только проект разросся до ~10 минут видео, то все, привет. А мне около часа нужно смотировать. Я уже знаю места, где резать нельзя. То есть, нужно кусок подрезать, но если тронешь - сегфолт будет. Поэтому это не видеомонтаж, а какой-то поиск мест, где можно резануть, и выбор того, что можно оставить, хотя в конечном видео этого быть не должно.

Kdenlive не хочет показывать ogv в реальном времени. Вместо этого на предпросмотре он показывает первый ключевой кадр (который даже не равен первому кадру в редактируемом куске). В какой-то момент его пробивает, и он начинает показывать видео, но при этом звук сильно смещен. Так что в нем монтировать вообще нереально.

Щас ищу какой-нить альтернативный редактор.

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

Имеется в виду исходное видео. Структура такая, какую дает recordmydesktop.

Инфа от mplayer:

Detected file format: Ogg (libavformat)
[ogg @ 0xb62cdfc0]Multiple fisbone for the same stream is not implemented. Update your Libav version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[ogg @ 0xb62cdfc0]max_analyze_duration 5000000 reached
[lavf] stream 1: video (theora), -vid 0
[lavf] stream 2: audio (vorbis), -aid 0
Load subtitles in .
Selected video codec: Theora [libavcodec]
Selected audio codec: Vorbis [libavcodec]
AUDIO: 44100 Hz, 2 ch, floatle, 499.8 kbit/17.71% (ratio: 62477->352800)
AO: [pulse] Init failed: Connection refused
Failed to initialize audio driver 'pulse'
AO: [alsa] 48000Hz 2ch floatle (4 bytes per sample)
[AO_ALSA] Unable to find simple control 'Master',0.
Starting playback...
VIDEO:  1280x1024  10.000 fps    0.0 kbps ( 0.0 kB/s)
VO: [vdpau] 1280x1024 => 1280x1024 Planar YV12
[vdpau] Got display refresh rate 60.000 Hz.
[vdpau] If that value looks wrong give the -vo vdpau:fps=X suboption manually.
A:   0.8 V:   0.9 A-V: -0.001 ct: -0.000   0/  0 26% 10%  1.4% 0 0

Xintrea ★★★★★
() автор топика

Для теста перегони все свое кино в mjpeg, качество любое, контейнер любой, я советую AVI. Если пропадут проблемы, то дело точно в ключевиках.

Вообще, монтировать можно в чем угодно, в том числе в этом самом черновом файлике, считай его проксей. Реж как тебе надо, сосредоточься на креативе, а не на сегфолтах. Затем экспортни проект и подмени файлы. В крайнем случае экспортнешь EDL и отрендеришь в Вегасе или Премьерке под оффтопиком.

Сырое видео в OGV - это новое слово в индустрии

ruzisufaka
()
Ответ на: комментарий от Xintrea

Два чая MyLittlePony, перегони в другой формат и редактируй спокойно.

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

Блин, вот откуда ты знаешь про опцию -g?
В официальном мане ffmpeg её нет.
В официальном хелпе ffmpeg её тоже нет.
Откуда?

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от MyLittlePony

В общем, дело было дествительно в ключевых кадрах. Перегнал из OGV в H264 с опцией -g 1 (я так понимаю, получил чередование ключевика и обычного кадра, ну да ладно). И подменил исходное видео в проекте.

И сразу все косяки с черными кадрами и с кривой обрезкой исчезли. Сегфолтов стало на порядок меньше. И я даже обрадовался что смогу продолжить делать видео в OpenShot.

Но возникли другие проблемы:

1. Неважная, но раздражающая: перемещение в новое место вертикального курсора на линии времени стало очень медленным: тыкнешь, и секунд 30 ждешь, пока что-то посчитается. На первоначальном видео такой проблемы не было.

2. OpenShot всеже глючное поделие, не предназначенное для монтажа видео длинее 5 минут. При выставлении шага шкалы времени в 1 сек., горизонтальная прокрутка возможна от 0 до 5 мин. Дальше вправо проехать нельзя. Вот такое странное ограничение.

- Если выставить шаг шкалы в 2 сек., можно уехать вправо до 10 мин. - Если выставить шаг в 4 сек., можно уидеть таймлайн до 20 мин.
- При шаге 8 сек можно сдвинуться до 40 мин.
и т. д.

Но ёлки палки, мне нужно смонтировать полуторачасовое видео, причем на любой минуте мне нужна субсекундная точность. А она реально исчезает при увеличении длинны видео. На 20 минуте я уже перестал попадать в произносимые слова. А мне нужно полтора часа.

3. Сегфолты стали реже, но остались. Уже даже знаешь при каких действиях вылетит сегфолт. Плохо, что сегфолт зависит даже от скорости работы пользователя. Быстро кликнешь мышкой - получишь сеголт. Будешь выжидать после каждого действия несколько секунд, сегфолта не будет. А действия эти стандартные - перемещение курсора, разрезка блока, изменение размера блока. То есть, замые важные и популярные действия по разрезке и склейке жутко забагованы.


В общем, OpenShot - это даже не любительский инструмент, а затычка «чтобы было». Его пилить, пилить, и пилить.

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

В общем, дело было дествительно в ключевых кадрах. Перегнал из OGV в H264 с опцией -g 1

Вот лучше б ты перекодировал его в mjpeg как тебе выше советовали. Там все кадры ключевые. И ресурсов при монтировании меньше требует, и просчитывает быстрее. Только будет ли толк, если исходный ogg - проблемный ?! Забей в гугл «Broken file, keyframe not correctly marked. RecordMyDesktop»

например:

https://bugs.launchpad.net/ubuntu/ source/recordmydesktop/ bug/1589853

I had some problems when I edited ogv files from recordmydesktop v0.3.8.1 in Openshot. Because of that I converted the files to mp4 using ffmpeg. This gave me the warning: [ogg @ 0x298e040] Broken file, keyframe not correctly marked.

https://forum.kde.org/viewtopic.php?f=265&t=115164

After long and extensive testing, I've come to the conclusion that the entire problem is neither Kdenlive, nor Melt, nor FFMpeg, but, as originally posted, the horrible, broken files produced by RecordMyDesktop. If I try and actually transcode one with FFMPEG and minimal options, using either current stable or git master versions of FFMPEG, I get hundreds / thousands of errors stating: «Broken file, keyframe not correctly marked.time=00:40:28.70»

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

Вот лучше б ты перекодировал его в mjpeg как тебе выше советовали. Там все кадры ключевые.

У меня же видео с десктопа, не подходит под mjpeg.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от ruzisufaka

Можно заменить на любой другой _монтажный_ кодек, но тебе не понравится.

Какие монтажные кодеки ты имеешь в виду? И почему не понравится?

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

К примеру, есть DV (очень страшно) или ProRes. Первый не понравится качеством и размером, второй просто размером. А для прокси-футажа сойдет что угодно, и не важно что у тебя там видео с экрана.

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

А для прокси-футажа сойдет что угодно, и не важно что у тебя там видео с экрана.

То есть, разницы нет, хоть mjpeg, хоть HuffYUV?

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от MyLittlePony

Кароч, с OpenShot 1.x.x каши не сваришь из-за потери точности на роликах, длинее 5 мин.

Стал пробовать собрать OpenShot 2.1.0. Для него нужны либы libopenshot-audio и libopenshot.

libopenshot-audio собралось и проинсталлилось нормально.

А сборка libopenshot не идет:

Ошибка при компиляции libopenshot: Нет правила для сборки цели «/usr/lib/libWand.so»

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

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

ruzisufaka
()
Ответ на: комментарий от Xintrea

У меня же видео с десктопа

Погугли, вроде в kdenlive была какая-то штука, чтоб писать видео с десктопа.

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

Avidemux чем не устраивает? Это вроде как единственный удобоваримый Linux редактор видео

Это же линейный редактор. А мне нужен нелинейный со слоями. Пусть простой, но нелинейный.

Я уже собрал OpenShot 2.1.0, и в нем нет проблемы двойной потери точности шкалы при каждом увеличении ролика на 5 минут.

Но есть маленькая проблема: он тупо не может открыть проект от OpenShot 1.4.3. У других товарищей такая же проблема:

https://github.com/OpenShot/openshot-qt/issues/172
https://bugs.launchpad.net/openshot/ bug/1568511

Такое впечатление, что в версии 2.x разломали поддержку национальных алфавитов, и теперь только ASCII.

Xintrea ★★★★★
() автор топика
Последнее исправление: Xintrea (всего исправлений: 1)

Не юзай OpenShot - жутко глючная херь. Случилось, что надо перегнать довольно большое количество видео, убрать интерлейс, нарезать ролики аккуратно - ничего эта прога не смогла. При нарезке постоянные сегфолты были, так и не понял как с ней работать можно, а еще хвалят...

В итоге все сделал в Blender. Да, надо было немного маны почитать, привыкнуть, зато потом как молоток - работает четко и безотказно, ну скрипты можно, если что.

anonymous
()
Ответ на: just saying... от mos

Мда уж...

Перегнал все файлы исходных данных и thumbnail в транслит. Перегнал файл проекта с x-esc-entities в UTF-8, а потом всем строкам в нем тоже сделал транслит тем же алгоритмом что и имена файлов. Проект открылся в 2.1.0.

Но работать невозможно.

Проигрывание жутко тормозит. Видно, что качество вывода в окне предпросмотра выставлено на максимум. Но вот сюрприз: окно параметров не вызывается. Даже в свежезагруженном OpenShot 2.1.0 просто невозможно вызвать окно настройки параметров «Правка»-«Параметры».

Походу, на этом дружбу с OpenShot можно считать законченой. Жалко только потраченного времени, теперь весь час, который я с боем смог смонтировать, надо переделывать в другой проге. Спасибо, Open Source!

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

Я сделал последнюю попытку: решил найти настройки качества предпросмотра в пользовательской директории, и выставить вручную. Потому что если делаешь размер окна предпросмотра в 20x10 пикселей, то проигрывание заметно улучшается и звук почти не заикается.

Так вот, в OpenShot 1.4.3 такая настройка была в файле config.xml, и называлась:

<output_mode>sdl_preview</output_mode>


А в Openshot 2.1.0 настройки переделаны на JSON, но настройки качества предпросмотра просто нет, я руками пересмотрел весь файл настроек. Качество теперь захардкожено тупо в коде. В топку такие улучшения.

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

Да, походу надо было сразу в блендере делать. Я в OpenShot часовое видео не смогу завершить, ну его в пень.

В принципе, то , что наработал в OpenShot придется заново повторить. Будет уже немного не то, это неприятно, ну да ладно. Я не понимаю каким ибецилом надо быть, чтобы OpenShot нахваливать. Реально им пользоваться невозможно.

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

Это же линейный редактор

Линейный - это когда ты можешь только дописывать в конец и не можешь вставить кусок в уже смонтированную часть. Сейчас таких «редакторов», скорее всего, уже нет, они были только в аналоговую эпоху.

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

Перегнал все файлы исходных данных и thumbnail в транслит. Перегнал файл проекта с x-esc-entities в UTF-8, а потом всем строкам в нем тоже сделал транслит тем же алгоритмом что и имена файлов. Проект открылся в 2.1.0

Невообразимое ССЗБ

Походу, на этом дружбу с OpenShot можно считать законченой. Жалко только потраченного времени, теперь весь час, который я с боем смог смонтировать, надо переделывать в другой проге. Спасибо, Open Source!

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

ruzisufaka
()
Ответ на: комментарий от Xintrea

А в Openshot 2.1.0 настройки переделаны на JSON

JSON вне веба - верный признак говна и зашквара

но настройки качества предпросмотра просто нет, я руками пересмотрел весь файл настроек. но настройки качества предпросмотра просто нет, я руками пересмотрел весь файл настроек. но настройки качества предпросмотра просто нет, я руками пересмотрел весь файл настроек.

А кто сказал, что оно там должно было быть? Параметр наверняка есть (предположение), просто в файле оно не указано. Для этого надо смотреть на процедуру разбора параметров.

Качество теперь захардкожено тупо в коде.

А ты видел это в коде? Или спиздануть решил? Если видел, то что мешало поменять 2 числа и пересобрать?

Монтировать в прокси, который не тормозит и заточен под монтаж... НЕ, НЕ БУДУ!

ruzisufaka
()

Есть flowblade, почти как опеншот, только не вылетал (у меня). А лучше освоить блендер.

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

А ты видел это в коде? Или спиздануть решил? Если видел, то что мешало поменять 2 числа и пересобрать?

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


Монтировать в прокси, который не тормозит и заточен под монтаж... НЕ, НЕ БУДУ!

Не беспокойся, я сделал себе прокси, толку ноль. Прокси опеншоту не поможет. Версия 1.4.3 - недоделка. Версия 2.1.0 - еще большая недоделка, в ней даже окна настроек нет. В обоих версиях сегфолты на сегфолтах. Я уж лучше выучу Блендер.

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

А мне не надо, я свой редактор пишу. И настроек в нем тоже не будет. Ну, по крайней мере, с твоей точки зрения.

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