LINUX.ORG.RU

Cinelerra-GG and av1

 


1

1

Вот, сделал небольшой хак к Cin-GG, теперь она воспроизводит 1280x720 AV1 видео на полной скорости. (вкомпилял ffmpeg.gt + libdav1d 0.3.0)

Хак - https://www.cinelerra-gg.org/bugtracker/view.php?id=214

diff --git a/cinelerra-5.1/cinelerra/ffmpeg.C b/cinelerra-5.1/cinelerra/ffmpeg.C
index 3bb9dd8..e87cfa5 100644
--- a/cinelerra-5.1/cinelerra/ffmpeg.C
+++ b/cinelerra-5.1/cinelerra/ffmpeg.C
@@ -374,7 +374,18 @@ int FFStream::decode_activate()
                }
                while( ret >= 0 && st != 0 && !reading ) {
                        AVCodecID codec_id = st->codecpar->codec_id;
- AVCodec *decoder = avcodec_find_decoder(codec_id);
+ /* hack */
+ // AVCodec *decoder = avcodec_find_decoder(codec_id);
+
+ // const char* lib_aom_name = "libaom-av1";
+ const AVCodecDescriptor *descr = avcodec_descriptor_get(codec_id);
+ AVCodec *decoder = NULL;
+ decoder = avcodec_find_decoder(codec_id);
+ if ( descr->id == AV_CODEC_ID_AV1) {
+ decoder = avcodec_find_decoder_by_name("libdav1d");
+ }
+
+
                        avctx = avcodec_alloc_context3(decoder);
                        if( !avctx ) {
                                eprintf(_("cant allocate codec context\n"));
@@ -1543,6 +1554,7 @@ FFMPEG::FFMPEG(FileBase *file_base)
        has_audio = has_video = 0;
        opts = 0;
        opt_duration = -1;
+ opt_force_video_decoder = 0;
        opt_video_filter = 0;
        opt_audio_filter = 0;
        opt_hw_dev = 0;
@@ -2007,6 +2019,8 @@ int FFMPEG::read_options(FILE *fp, const char *options, AVDictionary *&opts)
                if( !ret ) {
                        if( !strcmp(key, "duration") )
                                opt_duration = strtod(val, 0);
+ else if( !strcmp(key, "force_video_decoder") )
+ opt_force_video_decoder = cstrdup(val);
                        else if( !strcmp(key, "video_filter") )
                                opt_video_filter = cstrdup(val);
                        else if( !strcmp(key, "audio_filter") )
diff --git a/cinelerra-5.1/cinelerra/ffmpeg.h b/cinelerra-5.1/cinelerra/ffmpeg.h
index b4867b8..e13504e 100644
--- a/cinelerra-5.1/cinelerra/ffmpeg.h
+++ b/cinelerra-5.1/cinelerra/ffmpeg.h
@@ -329,6 +329,7 @@ public:
        char *opt_video_filter;
        char *opt_audio_filter;
        char *opt_hw_dev;
+ char *opt_force_video_decoder;
        char file_format[BCTEXTLEN];
        int fflags;

Компилять:

export EXTRA_LIBS=" -lOpenCL -ldav1d"
export FFMPEG_EXTRA_CFG=" --enable-opencl --enable-libdav1d"
setarch i686 ./configure --with-git-ffmpeg=https://git.ffmpeg.org/ffmpeg.git --with-single-user 

Также видны разные фильтры от FFmpeg'а. Комплексные графы там не сделать, но просто как эффект к треку - должно сработать. (я пробовал scale_vaapi, но он что-то не заработал. Впрочем, они и с нормальным ffmpeg не работал .. завёл баг на месу)

>>> Просмотр (1440x900, 631 Kb)

★★★★

Проверено: Shaman007 ()
Последнее исправление: Shaman007 (всего исправлений: 1)

Oldschool

Увидел gkrellm, умильнулся и всплакнул... Такая ностальгия!!!

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

Это потому что у меня LANG=«ru_RU.CP1251» В utf-8 всё работает ....

Gkrellm удобен - сразу видно что сейчас происходит, и что происходило с процессором, дисками, сетью ....

Andrew-R ★★★★
() автор топика

Очень нескучная жесть. Но вот мониторчик так себе, слишком много места занимают подписи. И зачем в реальном времени мониторить напряжение по ядрам (или что это там такое)? И прозрачность окон это жесть.

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

Ну, «лишние» напряжения можно и не показывать. Но мне они не мешают, всё равно эта полоска своё место занимает.

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

Andrew-R ★★★★
() автор топика

Cinelerra

О, синелерра, не частый гость на Лоре, хотя последнее время есть к чему сделать новости, поддержку железного декодинга-энкодинга сделали да ещё много чего. scale_vaapi должен работать, во всяком случае у меня работает. LANG=«ru_RU.CP1251» - зачем?

einhander ★★★★★
()
Ответ на: Cinelerra от einhander

да ещё много чего.

Да, я-то за разработкой внимательно слежу, хотя использую в основном как экранохваталку и «видео покромсать».

Со scale_vaapi есть какая-то проблема то ли в драйвере, то ли в va-трекере состояний ...
https://bugs.freedesktop.org/show_bug.cgi?id=110679

LANG=«ru_RU.CP1251» - зачем?

Привычка, шрифты (ещё с Alt Linux junior/master 2.2), один файлик с именем длиннее 128 символов (случайно наткнулся, когда бэкап пытался сделать).

Andrew-R ★★★★
() автор топика
Ответ на: комментарий от AP

..локализацию я немного поковырял, но не уверен что не стало хуже - я всё-таки многие термины только поверхностно представляю ..... Дам на выходных товарищу, пусть повозмущается, я ещё поредактирую.

Andrew-R ★★★★
() автор топика
Ответ на: комментарий от AP

https://ibin.co/4hmHShcMcY6q.png - это в LANG=ru_RU.utf-8 Не обрываются ... какой-то баг, я про него знаю, но похоже он только с моими шрифтами и прочей требухой воспроизводится.

или даже вот, там та же точно панель настроек. https://ibin.co/4hmJEbSr0lIv.png

Andrew-R ★★★★
() автор топика
Последнее исправление: Andrew-R (всего исправлений: 1)
Ответ на: комментарий от Andrew-R

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

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

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

Andrew-R ★★★★
() автор топика

Да помилует господь твою грешную душу.

Exmor_RS ★★★
()
Ответ на: комментарий от Andrew-R

Ясно. Вероятно, не умеет корректно твою локаль обрабатывать.

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

AP ★★★★★
()
Ответ на: комментарий от Andrew-R

Это потому что у меня LANG=«ru_RU.CP1251»

Да что ты такое?!!!

AVL2 ★★★★★
()

вообще как с поддержкой HW у линуксовых редакторов? хотя бы для воспроизведения? знаю что есть какая-то библа и для эффектов на GPU, но это уж слишком ))

mos ★★☆☆☆
()

Этот скриншот - взрыв мозга! Смотришь и не можешь понять: из какого года такое просочилось 8).

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от mos

Вот тут говорится, что pitivi умеет в декодинг https://lists.cinelerra-cv.org/pipermail/cinelerra/2018q2/008906.html

кажется новостях и про shotcut было - вот https://www.linuxuprising.com/2018/11/shotcut-video-editor-adds-va-api.html

Но поскольку я собираю регулярно только cinelerra-GG - то про неё и могу сказать, что да, у юзеров работает (у меня сам декодер тупит: https://bugs.freedesktop.org/show_bug.cgi?id=82835)

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