Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом (чтобы принимать музыку с виндовой машины с плеера VLC)
Модератор: Модераторы разделов
-
- Сообщения: 342
Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом
У плеера 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 - музыка без потерь при декодировании слабой машиной (роутером)
Итак вот команда чтобы вещать в сеть флэком
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 - музыка без потерь при декодировании слабой машиной (роутером)
-
- Модератор
- Сообщения: 21180
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом
Контейнер flac для потокового вещания не годится. Заворачивайте его в Ogg.
https://www.xiph.org/flac/faq.html#general__native_vs_ogg
https://www.xiph.org/flac/faq.html#general__native_vs_ogg
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Администратор
- Сообщения: 5384
- ОС: Gentoo
Re: Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом
i Уведомление от модератора Перемещено из "Программ" в "Мультимедиа"
-
- Сообщения: 342
Re: Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом
Bizdelnick писал(а): ↑11.05.2013 02:12Контейнер flac для потокового вещания не годится. Заворачивайте его в Ogg.
Это как ? В VLC есть понятия кодек и mux (инкапсуляция). Вот например для потокового mp3 я выбираю кодек mp3, а mux=raw. Что мне выбирать, чтобы слать lоssless музыку на роутер ?
-
- Модератор
- Сообщения: 21180
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом
mux=ogg
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 342
Re: Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом
Сложно все это. Понаставил кучу программ (они все во флеш роутера не влезут, но хоть потестировать), написал в командной строке целое сочинение, а оно в ответ только ругается
все 3 аудио программы ругнулись
отработала только netcat-nc
Я вообще сомневаюсь, что это так нужно делать. Нету здесь мысли правильной.
Код: Выделить всё
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 аудио программы ругнулись

Я вообще сомневаюсь, что это так нужно делать. Нету здесь мысли правильной.
-
- Модератор
- Сообщения: 21180
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом
oggdec здесь не в тему. Он декодирует Ogg Vorbis, а у Вас Ogg FLAC. flac -d --ogg должен справляться с таким потоком без предварительных манипуляций.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 342
Re: Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом
ДА, действительно ogg декодер не нужен и сам flac все декодирует. Правда я сейчас решил, что лучше добиться звука от сырого raw потока без архивации во что либо, а когда получиться, вернуться к flac.
По этому теперь вопрос, как играть raw поток ?
Там суть, как мне кажется, в конфигурировании звукового устройства /dev/sound/dsp
Просто так обычный wav плеер не может играть raw, т.к. нет заголовка. Не прочитав заголовок, плеер не знает, какие установки конфигурировать в звуковое устройство.
Когда я открываю raw в звуковом редакторе, редактор задает вопросы:
Какая частота
сколько бит
и какое расположение бит - msb first (старший первый) или lsb first (младший первый)
Вот именно это и нужно сообщить звуковому устройству, чтобы оно могло играть raw
По этому теперь вопрос, как играть raw поток ?

Там суть, как мне кажется, в конфигурировании звукового устройства /dev/sound/dsp
Просто так обычный wav плеер не может играть raw, т.к. нет заголовка. Не прочитав заголовок, плеер не знает, какие установки конфигурировать в звуковое устройство.
Когда я открываю raw в звуковом редакторе, редактор задает вопросы:
Какая частота
сколько бит
и какое расположение бит - msb first (старший первый) или lsb first (младший первый)
Вот именно это и нужно сообщить звуковому устройству, чтобы оно могло играть raw
-
- Модератор
- Сообщения: 21180
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом
Для этого и придуман контейнер. Не изобретайте велосипед.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 342
Re: Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом
Вот воистину
не нужно изобретать велосипед. Нужно как то используя софт, что уже сочинило человечество, воспроизвести таки в консоли лосс-лесс стрим.
Я уже сильно готов сделать это, остался только последний решающий рывок

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

-
- Сообщения: 342
Re: Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом
Поставил попробовать программу с исключительно обнадеживающим названием "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
-
- Сообщения: 342
Re: Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом
Вроде из столь "чудесно написанного и очень понятного" хелпа вытекает, что нужно писать вот так
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 -
(я уже давно оставил надежды воспроизвести 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
-
- Сообщения: 342
Re: Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом
Установил еще одну недоделку 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.

-
- Модератор
- Сообщения: 21180
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом
ogg123 тоже только для ogg vorbis.
Что касается устройств alsa, их можно увидеть, например, при посредстве aplay -l.
Что касается устройств alsa, их можно увидеть, например, при посредстве aplay -l.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 342
Re: Ищу простой консольный проигрыватель flac, работающий с потоком, а не файлом
В такой ситуации, когда нету подходящих программ, чтобы реализовать поставленную задачу, по идее нужно писать программу самому. Точнее 2 программы. Аналог netcat и плеер. Я совсем не программер, для меня наверное сложно будет написать эти программы, хотя они очевидно совсем не сложные по программистским меркам.
Может создам ветку в программировании.
Может создам ветку в программировании.