Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом (чтобы принимать музыку с виндовой машины с плеера VLC)

Разные проблемы звука, видео, обсуждение разных устройств и т.д.

Модератор: Модераторы разделов

Аватара пользователя
ZugDuk
Сообщения: 342

Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом

Сообщение ZugDuk »

У плеера VLC есть возможность вещать в сеть форматов flac. Этот формат вроде как подходит для потокового вещания (хотя я на практике не разу его в этой роли не видел).

Итак вот команда чтобы вещать в сеть флэком
C:\win\VLCPortable\VLCPortable.exe dshow://dshow-adev=Virtual Cable 1 --sout=#transcode{acodec=flac,ab=512,channels=2,samplerate=44100}:std{access=http,
mux=raw,dst=0.0.0.0:8081}

Но утилитка декодер flac почему то не понимает такого. Даже если wgetом записать в файл, а потом скормить утилитке, то она ругается на отсутствие заголовка. Т.е. она не врубается, что имеет дело со стримом.

А хочется реализовать основную фичу формата flac - музыка без потерь при декодировании слабой машиной (роутером)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21180
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом

Сообщение Bizdelnick »

Контейнер flac для потокового вещания не годится. Заворачивайте его в Ogg.
https://www.xiph.org/flac/faq.html#general__native_vs_ogg
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5384
ОС: Gentoo

Re: Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом

Сообщение /dev/random »

iУведомление от модератора
Перемещено из "Программ" в "Мультимедиа"
Спасибо сказали:
Аватара пользователя
ZugDuk
Сообщения: 342

Re: Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом

Сообщение ZugDuk »

Bizdelnick писал(а):
11.05.2013 02:12
Контейнер flac для потокового вещания не годится. Заворачивайте его в Ogg.


Это как ? В VLC есть понятия кодек и mux (инкапсуляция). Вот например для потокового mp3 я выбираю кодек mp3, а mux=raw. Что мне выбирать, чтобы слать lоssless музыку на роутер ?

Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21180
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом

Сообщение Bizdelnick »

ZugDuk писал(а):
11.05.2013 12:05
Это как ? В VLC есть понятия кодек и mux (инкапсуляция). Вот например для потокового mp3 я выбираю кодек mp3, а mux=raw. Что мне выбирать, чтобы слать lоssless музыку на роутер ?

mux=ogg
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
ZugDuk
Сообщения: 342

Re: Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом

Сообщение ZugDuk »

Сложно все это. Понаставил кучу программ (они все во флеш роутера не влезут, но хоть потестировать), написал в командной строке целое сочинение, а оно в ответ только ругается

Код: Выделить всё

netcat-nc -l -p 1235 -u -n -s 192.168.1.2 | oggdec -o - -| flac -d - | sndfile-play -
OggDec 1.0 (Tremor)

flac 1.2.1, Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007  Josh Coalson
flac comes with ABSOLUTELY NO WARRANTY.  This is free software, and you are
welcome to redistribute it under certain conditions.  Type `flac' for details.

Playing -
ERROR: Failed to open input as vorbis


-: ERROR while decoding metadata
   state = FLAC__STREAM_DECODER_END_OF_STREAM
File contains data in an unknown format.

все 3 аудио программы ругнулись :) отработала только netcat-nc

Я вообще сомневаюсь, что это так нужно делать. Нету здесь мысли правильной.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21180
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом

Сообщение Bizdelnick »

oggdec здесь не в тему. Он декодирует Ogg Vorbis, а у Вас Ogg FLAC. flac -d --ogg должен справляться с таким потоком без предварительных манипуляций.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
ZugDuk
Сообщения: 342

Re: Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом

Сообщение ZugDuk »

ДА, действительно ogg декодер не нужен и сам flac все декодирует. Правда я сейчас решил, что лучше добиться звука от сырого raw потока без архивации во что либо, а когда получиться, вернуться к flac.

По этому теперь вопрос, как играть raw поток ? :)

Там суть, как мне кажется, в конфигурировании звукового устройства /dev/sound/dsp

Просто так обычный wav плеер не может играть raw, т.к. нет заголовка. Не прочитав заголовок, плеер не знает, какие установки конфигурировать в звуковое устройство.

Когда я открываю raw в звуковом редакторе, редактор задает вопросы:
Какая частота
сколько бит
и какое расположение бит - msb first (старший первый) или lsb first (младший первый)

Вот именно это и нужно сообщить звуковому устройству, чтобы оно могло играть raw
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21180
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом

Сообщение Bizdelnick »

ZugDuk писал(а):
12.05.2013 13:18
Вот именно это и нужно сообщить звуковому устройству, чтобы оно могло играть raw

Для этого и придуман контейнер. Не изобретайте велосипед.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
ZugDuk
Сообщения: 342

Re: Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом

Сообщение ZugDuk »

Вот воистину :) не нужно изобретать велосипед. Нужно как то используя софт, что уже сочинило человечество, воспроизвести таки в консоли лосс-лесс стрим.

Я уже сильно готов сделать это, остался только последний решающий рывок :)

Спасибо сказали:
Аватара пользователя
ZugDuk
Сообщения: 342

Re: Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом

Сообщение ZugDuk »

Поставил попробовать программу с исключительно обнадеживающим названием "play" :)
и с немеряным хелпом из которого я не понял вообще ничего

Код: Выделить всё

play -h
play: SoX v14.2.0

Usage summary: [gopts] [[fopts] infile]... [fopts] [effect [effopts]]...

SPECIAL FILENAMES (infile, outfile):
-                        Pipe/redirect input/output (stdin/stdout); use with -t
-d, --default-device     Use the default audio device (where available)
-n, --null               Use the `null' file handler; e.g. with synth effect
-p, --sox-pipe           Alias for `-t sox -'

SPECIAL FILENAMES (infile only):
"|program [options] ..." Pipe input from external program (where supported)
http://server/file       Use the given URL as input file (where supported)

GLOBAL OPTIONS (gopts) (can be specified at any point before the first effect):
--buffer BYTES           Set the size of all processing buffers (default 8192)
--combine concatenate    Concatenate multiple input files (default for sox, rec)
--combine sequence       Sequence multiple input files (default for play)
--effects-file FILENAME  File containing effects and options
-h, --help               Display version number and usage information
--help-effect NAME       Show usage of effect NAME, or NAME=all for all
--help-format NAME       Show info on format NAME, or NAME=all for all
--input-buffer BYTES     Override the input buffer size (default: as --buffer)
--interactive            Prompt to overwrite output file
-m, --combine mix        Mix multiple input files (instead of concatenating)
-M, --combine merge      Merge multiple input files (instead of concatenating)
--plot gnuplot|octave    Generate script to plot response of filter effect
-q, --no-show-progress   Run in quiet mode; opposite of -S
--replay-gain track|album|off  Default: off (sox, rec), track (play)
-R                       Use default random numbers (same on each run of SoX)
-S, --show-progress      Display progress while processing audio data
--version                Display version number of SoX and exit
-V[LEVEL]                Increment or set verbosity level (default 2); levels:
                           1: failure messages
                           2: warnings
                           3: details of processing
                           4-6: increasing levels of debug messages
FORMAT OPTIONS (fopts):
Input file format options need only be supplied for files that are headerless.
Output files will have the same format as the input file where possible and not
overriden by any of various means including providing output format options.

-v|--volume FACTOR       Input file volume adjustment factor (real number)
-t|--type FILETYPE       File type of audio
-s/-u/-f/-U/-A/-i/-a/-g  Encoding type=signed-integer/unsigned-integer/floating-
                         point/mu-law/a-law/ima-adpcm/ms-adpcm/gsm-full-rate
-e|--encoding ENCODING   Set encoding (ENCODING in above list)
-b|--bits BITS           Encoded sample size in bits
-1/-2/-3/-4/-8           Encoded sample size in bytes
-N|--reverse-nibbles     Encoded nibble-order
-X|--reverse-bits        Encoded bit-order
--endian little|big|swap Encoded byte-order; swap means opposite to default
-L/-B/-x                 Short options for the above
-c|--channels CHANNELS   Number of channels of audio data; e.g. 2 = stereo
-r|--rate RATE           Sample rate of audio
-C|--compression FACTOR  Compression factor for output format
--add-comment TEXT       Append output file comment
--comment TEXT           Specify comment text for the output file
--comment-file FILENAME  File containing comment text for the output file

AUDIO FILE FORMATS: 8svx aif aifc aiff aiffc al amb au avi avr caf cdda cdr cvs cvsd cvu dat dvms f4 f8 fap ffmpeg flac fssd gsm hcom htk ima ircam la lpc lpc10 lu m4a mat mat4 mat5 maud mp2 mp3 mp4 mpg nist ogg paf prc pvf raw s1 s2 s3 s4 sb sd2 sds sf sl smp snd sndfile sndr sndt sou sox sph sw txw u1 u2 u3 u4 ub ul uw vms voc vorbis vox w64 wav wavpcm wmv wv wve xa xi
PLAYLIST FORMATS: m3u pls
AUDIO DEVICE DRIVERS: alsa ao oss ossdsp

EFFECTS: allpass band bandpass bandreject bass bend chorus compand contrast dcshift deemph delay dither earwax echo echos equalizer fade filter flanger gain highpass loudness lowpass mcompand mixer noiseprof noisered norm oops pad phaser pitch rate remix repeat reverb reverse riaa silence spectrogram speed splice stat stretch swap synth tempo treble tremolo trim vol

EFFECT OPTIONS (effopts): effect dependent; see --help-effect
Спасибо сказали:
Аватара пользователя
ZugDuk
Сообщения: 342

Re: Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом

Сообщение ZugDuk »

Вроде из столь "чудесно написанного и очень понятного" хелпа вытекает, что нужно писать вот так
netcat-nc -l -p 1234 -u -n -s 192.168.1.2 | play -b 16 -c 2 -r 44100 -e s -t raw -
(я уже давно оставил надежды воспроизвести flac или оgg - ибо эта программа упорно не въезжает в то, что посылает ей VLC плеер)

В отличии от очень "глупых" программ, как madplay, это чудо не может сообразить какая у меня звуковая карта, чтобы просто играть в нее музыку
netcat-nc -l -p 1234 -u -n -s 192.168.1.2 | play -b 16 -c 2 -r 44100 -e s -t raw -
ALSA lib pcm_direct.c:1616:(snd1_pcm_direct_parse_open_conf) The field ipc_gid must be a valid group (create group audio)
play formats: can't open output file `default': cannot open audio device
Спасибо сказали:
Аватара пользователя
ZugDuk
Сообщения: 342

Re: Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом

Сообщение ZugDuk »

Установил еще одну недоделку ogg123 (засылаю в нее как раз ogg-flac)

Код: Выделить всё

ogg123 -h
ogg123 from vorbis-tools 1.1.1
 by the Xiph.org Foundation (http://www.xiph.org/)

Usage: ogg123 [<options>] <input file> ...

  -h, --help     this help
  -V, --version  display Ogg123 version
  -d, --device=d uses 'd' as an output device
      Possible devices are ('*'=live, '@'=file):
        null* wav@ raw@ au@
  -f, --file=filename  Set the output filename for a previously
      specified file device (with -d).
  -k n, --skip n  Skip the first 'n' seconds (or hh:mm:ss format)
  -K n, --end n   End at 'n' seconds (or hh:mm:ss format)
  -o, --device-option=k:v passes special option k with value
      v to previously specified device (with -d).  See
      man page for more info.
  -@, --list=filename   Read playlist of files and URLs from "filename"
  -b n, --buffer n  Use an input buffer of 'n' kilobytes
  -p n, --prebuffer n  Load n% of the input buffer before playing
  -v, --verbose  Display progress and other status information
  -q, --quiet    Don't display anything (no title)
  -x n, --nth    Play every 'n'th block
  -y n, --ntimes Repeat every played block 'n' times
  -z, --shuffle  Shuffle play



И естественно ничего не работает (я уже привык :( )

Код: Выделить всё

netcat-nc -l -p 1234 -u -n -s 192.168.1.2 | ogg123 -
=== Could not load default driver and no driver specified in config file. Exiting.


netcat-nc -l -p 1234 -u -n -s 192.168.1.2 | ogg123 --device=d -
=== No such device d.


netcat-nc -l -p 1234 -u -n -s 192.168.1.2 | ogg123 -d=/dev/sound/dsp -
=== No such device =/dev/sound/dsp.


netcat-nc -l -p 1234 -u -n -s 192.168.1.2 | ogg123 -d /dev/sound/dsp -
=== No such device /dev/sound/dsp.


:(
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21180
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом

Сообщение Bizdelnick »

ogg123 тоже только для ogg vorbis.

Что касается устройств alsa, их можно увидеть, например, при посредстве aplay -l.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
ZugDuk
Сообщения: 342

Re: Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом

Сообщение ZugDuk »

В такой ситуации, когда нету подходящих программ, чтобы реализовать поставленную задачу, по идее нужно писать программу самому. Точнее 2 программы. Аналог netcat и плеер. Я совсем не программер, для меня наверное сложно будет написать эти программы, хотя они очевидно совсем не сложные по программистским меркам.
Может создам ветку в программировании.
Спасибо сказали: