• Как замедлить скорость кодирования ffmpeg?

    @monah_tuk
    добавь опцию -re перед -i
    https://trac.ffmpeg.org/wiki/StreamingGuide
    Ответ написан
    Комментировать
  • C++ как вызвать метод потомка, не определоного в предке?

    @monah_tuk
    Для начала: не пишите так.

    А так, если классы именно такие, то memory layout у них просто и, грубо, они указывают а одну область памяти. Поэтому поможет простое приведение:
    void foo(A& a) {
      //a.getSome(); //error: class 'A' has no member 'getSome()'
      static_cast<B&>(a).getSome(); // All ok.
    }


    Более того, у вас ещё косяк, такой код:
    B b();
    это не то, что вы подумали, это объявление функции. Всё что выглядит как функция, крякает как функция - функция. Правильно так:
    B b; // дефолтный конструктор не для POD типов вызовется и так

    или так:
    B b = B(); // Накладных расходов не будет. Будет вызван ТОЛЬКО один консутрутор. Компиляторы не совсем дураки.


    Кроме того, надеюсь, класс B описан, на самом деле, как-то так:
    class B : <b>public</b> A {
    <b>public:</b>
      int getSome();
    };

    а не так как у вас.
    Ответ написан
    1 комментарий
  • Как назначить хоткеи на колесико в Ubuntu?

    @monah_tuk
    Для привязки события к мыши, попробуй xbindkeys: blog.hanschen.org/2009/10/13/mouse-shortcuts-with-... (ищи: Mouse shortcuts). Wheel генерирует две мышиные клавиши, обычно 4 и 5 (как узнать точно описано в статье: xev).

    в качестве реакции на хоткей ("хот-буттон" в нашем случае) назначь команду xdotool снужными параметрами: www.semicomplete.com/projects/xdotool/xdotool.xhtml

    Либо вот этот концентрат знания: https://wiki.archlinux.org/index.php/All_Mouse_But...
    То, что статья для ArchLinux особой роли не играет. Тот же xbindkeys, но вместо xdotool - xvkbd.

    Т.е. по шагам:
    1. Настраиваешь xbindkeys, что бы он хендлил колесо (сиречь - две кнопки). В качестве действия можно, для начала, указать:
    "echo Up > /tmp/mouse_up.log"
    и
    "echo Down > /tmp/mouse_down.log"
    так будет проще, перебирая кнопки найти нужные

    2. А потом формируешь команду при помощи xdotool или xvkbd и прописываешь её вместо echo Up/Down.
    Ответ написан
    6 комментариев
  • Как обратиться к файлу в Clion?

    @monah_tuk
    Проверь настройку Working directory: stackoverflow.com/questions/25834878/how-do-i-chan... смени её на каталог проекта, тогда файлы будут браться из правильного места. С учётом того, что Clion производит теневую отстройку в непредсказуемых местах, это единственно верный вариант.
    Ответ написан
    Комментировать
  • Путаница в указателях?

    @monah_tuk
    если pbeg == nullptr или *pbeg == nullptr, то (*pbeg)->t будет попыткой разыменования нулевого указателя, а то и двойной. Покажи ещё стек-трейс (команда bt в gdb), но вангую, что он приведёт к строчке:
    two = del(q);
    а в листе был всего 1 элемент.

    Ванговал не правильно, но близко:
    Если вы опубликовали правильный код, тот который реально у вас. У вас проблемы. Причём не только с указателями:
    1. createList не возвращает созданный t - на выходе будете иметь мусор
    2. не могу чётко уловить логику, но createThree тоже может в определённых условиях вернуть мусор. Судя по всему внутри должен быть не просто рекурсивный вызов:
    createThree(&tmpQ);
    а:
    return createThree(&tmpQ);
    3. касательно указателей, просмотрел, но вот этот код никогда не закончится:
    while(q) {
    потому как q ни когда не станет null, а вот *q может и становится и собственно в таком виде и передаётся в del() в строчке tmp = del(q); в результате и получаешь фейл.

    дальше у тебя там ещё, походу, баг в логике. Но это уже без меня.

    PS если не поможет - приведите минимально-работающий код, на котором воспроизводится проблема.
    PPS у вас C++, уйдите от указателей на указатели, используйте ссылки, например:
    Three* del(Node &*pbeg)
    {
        assert(pbeg != 0); // для гарантий
        Three *temp = pbeg->t; //ПОМЕЧЕННАЯ СТРОКА
        Node *pv = pbeg;
        pbeg = pbeg->p;
        delete pv;
        return temp;
    }

    И вообще, в C++: попытайтесь заменить указатели на ссылки везде где это только можно. Много нервов сбережёте.
    Ответ написан
    6 комментариев
  • Где может быть ошибка в самописном RTP сервере?

    @monah_tuk
    В отсутствии RTCP. Без него практически все клиенты/сервера рвут связь через 30сек. По крайней мере во всех случаях, что я сталкивался так и было. Если не изменяет память, 30 сек максимальный интервал отсылки RTCP.

    Попробуй поставить уровень логирования повыше или воспроизвести при помощи ffplay -v debug rtp://xxx
    Ответ написан
    Комментировать
  • Какую лучше взять книгу по C++ для начинающего?

    @monah_tuk
    Было тут: C++ для начинающих — посоветуйте книгу - неплохая подборка.

    Из тех вариантов, что у вас - вторая, как минимум из-за актуального C++11 (хотя уже и C++14 есть).

    От себя: сразу поищите рекомендации по хорошим практикам написания кода (стиль, "магические" константы и т.п.) - если привыкать изначально, легче переносится. Как окончите книжку, почитайте более детально про C++11/C++14 (начните хотя бы с википедии). Запаситесь Майерсом (последняя книга так себе, но ранние - золото). А далее уже самому будет проще ориентироваться в литературе.
    Ответ написан
    Комментировать
  • Существует ли виртуальный драйвер тачскрина в Linux?

    @monah_tuk
    Готового решения не знаю.
    Для иксов? Тогда можно на основе этого сделать: www.x.org/wiki/Development/Documentation/XorgInputHOWTO
    Или что-то evdev подобное колхозить.
    Ответ написан
    Комментировать
  • Как сохранить настройки hdparm?

    @monah_tuk
    Самый простой способ прописать эту строку в /etc/rc.local. На системах с systemd нужно или сделать свой unit или смотреть, вдруг дистрибутор предоставляет слой совместимости и rc.local тоже есть.

    Всё, что отсюда будет вызвано, будет вызвано от имени root, соответственно никаких sudo не нужно, прав хватит.
    Ответ написан
    Комментировать
  • Как вывести raw-видео поток в окно X11 и Win?

    @monah_tuk
    Попробуйте: https://www.ffmpeg.org/ffmpeg-devices.html#xv

    вообще output devices: https://www.ffmpeg.org/ffmpeg-devices.html#Output-...

    PS под Windows не знаю.
    Ответ написан
    Комментировать
  • Как исправить ошибку в FFmpeg?

    @monah_tuk
    Вы же даже аргументы не показали. Не думаю, что тут телепатов много.
    Ответ написан
    Комментировать
  • Как перевести из формата mpg в mp4 или нарезать m3u8?

    @monah_tuk
    1. mpg -> mp4 тут не понятно что именно вы хотите, по принципу, какой вопрос - такой ответ:
    ffmpeg -i in.mpeg out.mp4
    сделает всё для вас.
    Для HLS нужно курить:
    https://www.ffmpeg.org/ffmpeg-formats.html#segment...
    https://bitbucket.org/walterebert/ffmpeg-hls/src

    2. чёрные края
    Если размеры известны, поможет фильтр crop:
    https://ffmpeg.org/ffmpeg-filters.html#crop
    video.stackexchange.com/questions/4563/how-can-i-c...
    если не известны - пишите своё, что бы детектило и настраивало crop.
    Ответ написан
    Комментировать
  • Как наложить водяной знак без потери качества?

    @monah_tuk
    Короткий ответ: никак.

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

    Напугал? Это правда жизни. Но на практике нужно играться с параметрами кодирования и подбирая удовлетворяющее соотношение качества и размера выходного битстрима.
    Ответ написан
    Комментировать
  • FFMpeg объеденить два видео?

    @monah_tuk
    Смотря что вы подразумеваете под объединением:
    1. Можно создать файл с двумя видео-дорожками, по аналогии с audio, но не все форматы контейнеров это умеют
    2. Можно склеить файлы

    Для второго варианта всё просто:
    https://trac.ffmpeg.org/wiki/Concatenate

    В случае различных параметров видео, тут нужно смотреть на возможности контейнера. MPEG-TS такое позволяет. Но его и "склеивать" можно простым cat.
    Ответ написан
    Комментировать