The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск мультимедиа-пакета FFmpeg 3.1, opennews (ok), 27-Июн-16, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


2. "Выпуск мультимедиа-пакета FFmpeg 3.1"  +/
Сообщение от robux (ok), 27-Июн-16, 11:44 
Есть какая-нибудь годная кроссплатформенная обёртка для использования FFmpeg (только не Gstreamer) в виде библиотеки, чтобы просто подавать на вход сырые медиа данные и получать закодированные, не погружаться в адовый API FFmpeg'а?
Ответить | Правка | Наверх | Cообщить модератору

4. "Выпуск мультимедиа-пакета FFmpeg 3.1"  +2 +/
Сообщение от Аноним (-), 27-Июн-16, 11:56 
обертка на каком языке (вообще, их как грязи на любом)? И чем плохо запускать его просто из командной строки?
Ответить | Правка | Наверх | Cообщить модератору

5. "Выпуск мультимедиа-пакета FFmpeg 3.1"  +/
Сообщение от Аноним (-), 27-Июн-16, 12:11 
Вероятно, он хочет на Ruby для своего проекта Pandoranet. Там впрочем, довольно странная архитектура. Лучше бы разделить на модули, сделать основу да отдать остальные модули (типа видеосвязи, бухгалтерия и прочее) на откуп обществу.
Ответить | Правка | Наверх | Cообщить модератору

6. "Выпуск мультимедиа-пакета FFmpeg 3.1"  +1 +/
Сообщение от robux (ok), 27-Июн-16, 12:12 
В идеале на ruby. Уже сижу покуриваю:
https://github.com/petems/mplayer-ruby
http://www.rubygemsearch.com/ruby-gems/search?q=mplayer
https://www.mplayerhq.hu/DOCS/HTML/ru/MPlayer.html#streaming

И да, для Пандоры.
Gstreamer, который я использовал, поломали вместе с переходом Gtk2->Gtk3.
Он и раньше-то только в лине работал (в винде нет), а щас и в лине перестал.

Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

8. "Выпуск мультимедиа-пакета FFmpeg 3.1"  +11 +/
Сообщение от Аноним (-), 27-Июн-16, 12:22 
команды ffmpeg и man ffmpeg - самые переносимые и самые гибкие.
перекодировка сначала отрабатывается на куске файла (опции -ss и -t, использовать перед -i), команда корректируется в какомнить .sh-файле, после чего -ss и -t убираются и перекодировывается вся вещь.
в качестве краткого ликбеза вот пример команды:
ffmpeg -i входнойфайл -map 0:v -map 0:a:1 -map 0:s:0 -f matroska -s 720x406 -c:v libx264 -threads:v 2 -c:a:0 libmp3lame -threads:a:0 1 -c:s:0 copy out.mkv
это значит:
1. -map: из файла "входнойфайл" (первый файл - индекс 0 в -map) взять видеопоток (0:v), второй аудиопоток (0:a:1) и первый поток субтитров (0:s:0);
2. -f: закодировать це всё в матрёшку (mkv);
3. -s: разрешение итогового видео;
4. -c: кодировщики: закодировать видеопоток кодеком libx264, выполнять двумя потоками (-threads:v 2), закодировать первый аудиопоток выходного файла (он был вторым во входном файле, но -map 0:a:1 было первым аудиопотоком, поэтому в выходном файле он первый) кодеком libmp3lame, выполнять в один поток; субтитры - скопировать;
5. результат записать в out.mkv.
как-то так.
интерфейс понятен как интеллектуально - через ман, - так и интуитивно - интуиция подсказывает, что команды надо как-то ввести. скорее всего с клавиатуры.
лучше всяких визивигов и прочих мелкомягких плюшек.
поэтому как-то так...
Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

11. "Выпуск мультимедиа-пакета FFmpeg 3.1"  +/
Сообщение от Аноним (-), 27-Июн-16, 13:50 
>2. -f: закодировать це всё в матрёшку (mkv);

зачем это нужно, если формат контейнера и так определится по расширению?

Ответить | Правка | Наверх | Cообщить модератору

14. "Выпуск мультимедиа-пакета FFmpeg 3.1"  +/
Сообщение от 5kbps (ok), 27-Июн-16, 14:24 
На случай, если расширение другое.
Ответить | Правка | Наверх | Cообщить модератору

15. "Выпуск мультимедиа-пакета FFmpeg 3.1"  +5 +/
Сообщение от Аноним (-), 27-Июн-16, 14:24 
на практике это можно не использовать, но в христоматийном примере оно должно фигурировать - ради пущей определённости.
Ответить | Правка | К родителю #11 | Наверх | Cообщить модератору

21. "Выпуск мультимедиа-пакета FFmpeg 3.1"  +/
Сообщение от robux (ok), 27-Июн-16, 19:21 
> команды ffmpeg и man ffmpeg - самые переносимые и самые гибкие.

Я уже пытался использовать "голый" ffmpeg.

Если в лине ещё можно поток (pipe) выдёргивать прямо из консоли и в ruby его читать, то винде такое невозможно (ведь я прав, да?). Т.е. первая проблема при съёме данных с камеры и микрофона в винде и передачи их в Пандору.

Вторая грабля - это то, что полученные с другой стороны медиа-данные (видео, аудио, либо оба сразу в "матрёшке") можно раздемуксить и декодировать, но нельзя вывалить видео в нужное мне окошко (аудио поток можно пулять сразу на устройство).

Я эту проблему пытался решить пару лет назад (https://www.linux.org.ru/forum/development/10645570), в итоге родилось костыльное решение:
1) медиа-поток(и) с камеры и микрофона из ffmpeg'а вываливать на локальный udp-порт
2) снимать с локального udp Пандорой и посылать другой строне
3) другая сторона принимает поток, запускает свой mplayer и говорит ему в какое окно пулять видео (xid одного из окон Пандоры).

Костыльно, но по идее должно работать, я эксперименты в лине проводил, но так и не проверил в винде - может ли виндовый mplayer выводить в указанное виндовое окошко).

Мне не нравится, что придётся плодить udp-потоки. Всё-таки хотелось бы как-то напрямую:
1) брать в винде данные;
2) выводить видео во внутреннее окно.
Но такого фреймворка (кроме сговнявшегося Гстримера) я пока найти не могу.

Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору

29. "Выпуск мультимедиа-пакета FFmpeg 3.1"  –3 +/
Сообщение от Аноним (-), 27-Июн-16, 23:03 
> Если в лине ещё можно поток (pipe) выдёргивать прямо из консоли и в ruby его читать, то винде такое невозможно (ведь я прав, да?).

Пайпы и возможность гонять произвольные данные через стандартные потоки ввода-вывода в винде есть. Умеют ли это виндовые сборки Ruby и ffmpeg -- вопрос отдельный.

Ответить | Правка | Наверх | Cообщить модератору

38. "Выпуск мультимедиа-пакета FFmpeg 3.1"  +/
Сообщение от dq0s4y71 (??), 29-Июн-16, 16:38 
> Если в лине ещё можно поток (pipe) выдёргивать прямо из консоли и
> в ruby его читать, то винде такое невозможно (ведь я прав,
> да?). Т.е. первая проблема при съёме данных с камеры и микрофона
> в винде и передачи их в Пандору.

А что, в винде  "ffmpeg ... -" не работает?

Ответить | Правка | К родителю #21 | Наверх | Cообщить модератору

9. "Выпуск мультимедиа-пакета FFmpeg 3.1"  –1 +/
Сообщение от Аноним (-), 27-Июн-16, 12:23 
handbrake.fr
Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру