• Как запустить mkv на linux?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    В линуксе три основных подсистемы для проигрывания audio/video.
    - ffmpeg - набор программ и библиотек от ffmpeg и сам плеер
    - gstreamer - набор библиотек, и плеер totem
    - vlc - все-в-одном, но с разными библиотеками, в частности за многое отвечает библиотека live555

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

    В VLC можно поиграться принудительным включение аппаратного декодирования
    Tools- Preferences - Input /Codecs

    Сказать, какой набор библиотек лучше - не могу.
    - vlc - всеяден, но вот иногда, как у Вас - не распознает аппаратные кодеры/декодеры. На live555 делал свои предыдущие проекты, лет 10 назад
    - ffmpeg - лучше всего поддерживае аппаратное ускорение, но в программировании - сущий кошмар
    - gstreamer - швейцарский нож для программиста и моя прелесть на текущий момент.

    Тем не менее - vlc - по быстрому посмотреть, что творится, у него умопомрачительная статистика по потокам.

    PS. Так как работаю с видео/аудио, как программист, то приходится держать все три набора библиотек и плееров :)
    Ответ написан
    Комментировать
  • Как сделать чтобы при нажатии на 1 кнопку, видео менялись по очереди?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    Верставший фронтендер
    Чтобы решить любую задачу нужно начать с разбития её на последовательность простых шагов.
    1) Сделать кнопку
    2) Сделать массив адресов видео
    3) Сделать цикличный счётчик от 0 до длина массива из п2 минус один, т.к. индексация в массивах с нуля.
    4) Всё совместить - доставать урл на видео по индексу-значению счетчика.

    // Кнопка
    const nextvideo = document.getElementById('nextvideo');
    // Видео элемент
    const videoElement = document.getElementById("video");
    // Массив путей
    const vids = [
      "../assets/img/web_1.mp4",
      "../assets/img/web_2.mp4",
      "../assets/img/web_3.mp4"
    ];
    // Счётчик
    let idx = 0;
    // Устанавливаем первый урл как первое видео.
    videoElement.src = vids[0]
    // Совмещаем всё вместе в обработчике клик
    nextvideo.addEventListener('click', function () {
      // Цикличность счётчика:
      // Если следующее значение выходит за длину массива минус 1 (выражено знаком "меньше"), 
      // то обнуляем, в противном случае увеличиваем на 1.
      idx = idx + 1 < vids.length ? idx + 1 : 0; 
      const nextVideoUrl = vids[idx];
      videoElement.src = nextVideoUrl
    })
    Ответ написан
    Комментировать
  • Как лучше сделать декоративную линию между двумя словами?

    Kinolog76
    @Kinolog76
    Я бы сделал через span
    Поставил бы его между словами и задал стили:
    display: block;
    height: 1px;
    width: 100%;
    background-color: #fff

    А самому контейнеру:
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    Ответ написан
    4 комментария
  • В чем разница между ajax, вебсокетом и реактивностью?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Это разные вещи. Аякас - изначально концепция, но на деле под ним обычно понимают стандартный хтпп запрос на сервер. Веб сокеты - это асинхронный протокол для передачи данных поверх TCP. Голые сокеты не очень удобно применять в вебе, а у хттп свои ограничения - вот и сделали хороший и удобный стандарт. А реактивность - по сути просто обновление интерфейса при поступлении обновленных данных.
    Ответ написан
    Комментировать
  • Почему показывает, что прокрутки у страницы нету в while, хотя она есть?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    Потому что ваш цикл while блочит поток выполнения.
    Можно воспользоваться функцией setInterval – каждый новый запуск будет выполнятся в новой итерации цикла событий (event loop), давая браузеру время на выполнение других необходимых задач. Например пересчитать и перерисовать объекты на странице.

    Ответ написан
    Комментировать
  • Как достать данные из json файла?

    Seasle
    @Seasle Куратор тега JavaScript
    Для импортирования JSON-файлов нужен какой-нибудь сборщик, который сможет зарезолвить их. Вы можете получить свои данные обычным запросом:
    const response = await fetch('data.json');
    const data = await response.json();
    
    console.log(data);

    Также, для работы Вам потребуется локальный сервер, например: live-server или serve. Запускать можно при помощи npx, например: npx serve.
    Ответ написан
    1 комментарий
  • Как сделать многостраничный сайт (онлайн-каталог)?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    На сайте могут быть представлены сотни позиций товаров, вручную верстать каждую страничку это бред, наверняка существуют какие-то оптимизированные методы для создания подобных проектов, хотел бы попросить рассказать о них, ибо я не смог найти нормальной информации по этому поводу.

    Есть, называется - cистема управления содержимым (CMS, Content Management System).
    вручную верстать каждую страничку это бред

    В большинстве CMS, Вы создаете шаблон страницы, который будет выводить "содержимое" страницы. Рекомендую сразу гребсти в сторону WordPress+WooCommerce, а когда его станет Вам не хватать (и Вы поймете, чего именно не хватает) - выберите себе более узкоспециализированный инструмент.
    Ответ написан
    2 комментария
  • Почему не работает innerHTML?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    я правильно понимаю что вы меняете innerHTML у строки, полученной из innerHTML?
    Ответ написан
    Комментировать
  • Возможно ли на собрать такой блок на css, но что бы он тянулся в зависимости от содержимого?

    Aetae
    @Aetae
    Тлен
    Просто делаешь примитивную svg-картинку бэкграундом или встроеенно и растягиваешь на весь размер блока.

    Если хочется извращений - можно псевдоэлементом с трансформацией:
    Ответ написан
    3 комментария
  • Насколько хорошо задавать стиль в html без создания класса и т.д?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    HTML это язык разметки
    CSS это стилевое оформление
    JS это логика

    В общем это можно сравнить с кухней.
    Смешайте мясо, пасту и соус в блендере. Возможно вам и понравится. Но лучше выложить пасту на нее мясо и полить соусом :)
    Ответ написан
    2 комментария
  • Как отфильтровать элементы li по объекту?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const li = Array.prototype.filter.call(
      document.querySelector('ul').children,
      function(n) {
        return this.every(([ k, v ]) => v === n.querySelector(`.${k}`).innerText);
      },
      Object.entries(items)
    );

    или

    const li = [];
    
    COLLECT_LI:
    for (const n of document.querySelectorAll('li')) {
      for (const k in items) {
        if (Object.hasOwn(items, k) && items[k] !== n.querySelector('.' + k).textContent) {
          continue COLLECT_LI;
        }
      }
    
      li.push(n);
    }
    Ответ написан
    4 комментария
  • Как добавить всплывающее окно на сайт 1с битрикс?

    godsplane
    @godsplane
    1. Заходим на https://freelance.habr.com/
    2. Ищем исполнителя
    3. Оплачиваем заказ
    4. Получаем результат
    Ответ написан
    Комментировать
  • Как сделать вырез в блоке такой же как в макете?

    szQocks
    @szQocks
    демо

    <div>
      <span>123</span>
      <p>Какой-то текст</p>
    </div>


    body{
      background: gray;
    }
    
    div{
      margin: 50px auto;
      width: 200px;
      height: 140px;
      background: radial-gradient(40px 40px at center top, transparent 100%, red 100%);
      position: relative;
      display: flex;
      justify-content: center;
      align-items: center;
      color: #fff;
      border-radius: 20px;
    }
    
    span{
      width: 65px;
      height: 65px;
      border-radius: 50%;
      color: firebrick;
      background: aqua;
      display: flex;
      justify-content: center;
      align-items: center;
      position: absolute;
      top: -32px;
    }
    Ответ написан
    2 комментария
  • Как правильно сверстать перевернутый элемент?

    Aetae
    @Aetae
    Тлен
    Очевидно transform: rotate(-90deg); и какой-нить transform-origin, наиболее удобный.
    Условно так:

    Других (адекватных) вариантов собственно и нет.
    Ответ написан
    3 комментария
  • Как изменить текст цвета в зависимости от фона?

    Frontend777
    @Frontend777
    Ubuнтер, php разраб, Wordпрессер, человек
    Если вам подойдет использование js, то можно попробовать рассмотреть такой пример:
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <script src="script.js"></script>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <link rel="stylesheet" href="styles.css">
      <title>Dynamic Text Color</title>
    </head>
    <body>
      <div class="container">
        <p id="content">Ваш текст.</p>
      </div>
    </body>
    </html>

    Css:
    body {
      margin: 0;
      padding: 0;
      font-family: Arial, sans-serif;
    }
    
    .container {
      width: 100%;
      height: 100vh;
      display: flex;
      justify-content: center;
      align-items: center;
      background-color: white; /* Default background color */
    }
    
    .container.dark {
      background-color: black; /* Dark background color */
      color: white; /* Text color for dark background */
    }

    JS:
    const container = document.querySelector('.container');
    const content = document.getElementById('content');
    
    // Функция для определения цвета фона
    function getBackgroundColor(element) {
      const bgColor = window.getComputedStyle(element).backgroundColor;
      return bgColor;
    }
    
    // Функция для определения оптимального цвета текста
    function getTextColor(backgroundColor) {
      // Пример простой проверки на светлый или тёмный цвет фона
      const rgb = backgroundColor.match(/\d+/g);
      const brightness = (parseInt(rgb[0]) * 299 + parseInt(rgb[1]) * 587 + parseInt(rgb[2]) * 114) / 1000;
    
      return brightness >= 128 ? 'black' : 'white';
    }
    
    // Изменение цвета текста в зависимости от цвета фона
    function updateTextColor() {
      const bgColor = getBackgroundColor(container);
      const textColor = getTextColor(bgColor);
      content.style.color = textColor;
    }
    
    // Обновляем цвет текста при загрузке и изменении размера окна
    window.addEventListener('load', updateTextColor);
    window.addEventListener('resize', updateTextColor);

    P.S Нагенерил код gpt
    Ответ написан
    7 комментариев
  • Как реализовать анимацию смещения текста кнопки?

    imko
    @imko
    Senior Scratch Developer
    Кейфреймс
    Ну примерно так на наведение уезжают вверх с середины, без наведения приезжают снизу в середину. Разве что еще чуть чуть поковыряться чтоб она при появлении не проигрывалась
    Ответ написан
    Комментировать
  • Как сделать такой слайдер?

    DanArst
    @DanArst Куратор тега JavaScript
    Гриффиндор в моде при любой погоде!
    Как вы пытались реализовать и что не получилось?
    Примеров таких слайдеров в интернете просто море. Вот например с помощью Swiper.
    Если будете использовать loop, то значение slidesPerView должно быть больше как минимум в 2 раза, чем общее количество слайдов.
    Ответ написан
    1 комментарий
  • Как нарисовать картинку в canvas?

    Aetae
    @Aetae
    Тлен
    let img = new Image()
    // создали Image, пока ничего не происходит
    
    img.src = "path/to/img.jpg"
    // установили src - пошла загрузка картинки
    
    ctx.drawImage(img, x, y);
    // нарисовали на канвасе сраное ничто
    
    // идёт загрузка картинки
    // идёт загрузка картинки
    // идёт загрузка картинки
    // идёт загрузка картинки
    // идёт загрузка картинки
    // идёт загрузка картинки
    // идёт загрузка картинки
    
    // картинка загрузилась, вызвано событие img.onload
    Ответ написан
    1 комментарий
  • Как нарисовать картинку в canvas?

    szQocks
    @szQocks
    Скорее всего ошибка в путях, либо не верно отслеживал событие.

    const canvas = document.createElement('canvas');
    canvas.width = 500;
    canvas.height = 500;
    
    const ctx = canvas.getContext('2d');
    
    document.body.append(canvas);
    
    let img = new Image();
    img.onload = () => {
      ctx.drawImage(img, 0, 0);
    }
    img.src = "https://i.pinimg.com/originals/87/48/07/874807f8cb45e17f44312eb761261ad9.jpg";
    Ответ написан
    Комментировать