<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; CMD/BAT: Есть ли программа, транслирующая поток с stdout в localhost?]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=10576&amp;type=atom" />
	<updated>2015-04-23T06:51:53Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=10576</id>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Есть ли программа, транслирующая поток с stdout в localhost?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=93543#p93543" />
			<content type="html"><![CDATA[<p>Главное, что foobar нас не разочаровал. <strong>DnsIs</strong>, - спасибо! <strong>UNDYING</strong>, - спасибо!</p>]]></content>
			<author>
				<name><![CDATA[k2]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29678</uri>
			</author>
			<updated>2015-04-23T06:51:53Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=93543#p93543</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Есть ли программа, транслирующая поток с stdout в localhost?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=93541#p93541" />
			<content type="html"><![CDATA[<p>Прошу прощения, косяк мой.<br />Правильно так:<br /></p><div class="codebox"><pre><code>rtmpgw.exe -r rtmp://video.tvr.by/radio/radio1</code></pre></div><p>И да, foobar заработал. Про плагин то я и забыл.<br />Но вот ffplay разочаровал. rtmpgw ругается так:<br /></p><div class="codebox"><pre><code>processTCPrequest, Range request not supported</code></pre></div><p>а ffplay так:<br /></p><div class="codebox"><pre><code>[http @ 03030280] HTTP error 416 Requested Range Not Satisfiable0
http://127.0.0.1:80: Server returned 4XX Client Error, but not one of 40{0,1,3,4}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[DnsIs]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26282</uri>
			</author>
			<updated>2015-04-23T05:41:08Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=93541#p93541</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Есть ли программа, транслирующая поток с stdout в localhost?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=93528#p93528" />
			<content type="html"><![CDATA[<p><strong>DnsIs</strong> !!!!!<br />По приведённой строке у меня не подключается и vlc.<br />Так: rtmpgw.exe -r rtmp://... . Foobar 1.3.8 + foo_flv.dll.</p>]]></content>
			<author>
				<name><![CDATA[k2]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29678</uri>
			</author>
			<updated>2015-04-22T19:48:46Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=93528#p93528</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Есть ли программа, транслирующая поток с stdout в localhost?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=93525#p93525" />
			<content type="html"><![CDATA[<p>Парни, в пакете rtmpdump есть утилита rtmpgw, обещающая транспорт rtpm в http. Кто-нибудь с ней экспериментировал?<br />Пробовал:<br /></p><div class="codebox"><pre><code>rtmpgw.exe rtmp://video.tvr.by/radio/radio1</code></pre></div><p>vlc подключается к 127.0.0.1:80, а foobar и ffplay не могут.</p><p>PS Может кто то объяснить, в чем разница между rtmp, rtp, rtsp? Хотя бы вкратце.</p>]]></content>
			<author>
				<name><![CDATA[DnsIs]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26282</uri>
			</author>
			<updated>2015-04-22T15:19:39Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=93525#p93525</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Есть ли программа, транслирующая поток с stdout в localhost?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=93467#p93467" />
			<content type="html"><![CDATA[<p>На счёт прослушивания в копии vlc - я дописал за две минуты до Вашего ответа (и кой-чего добавил).&nbsp; Не удалось мне его заставить слушать 127.0.0.1 - это очень странно.<br />Всегда и везде&nbsp; пишу: 127.0.0.1 (проще, чем выписывать &quot;localhost&quot;).<br />Битрейт 128 пробовал, всё то же.</p><p>&quot;vlc для Windows не умеет принимать данные на stdin&quot; - есть непонятная мне хитрость, надо в конце строки с vlc поставить просто тире. Тогда будет работать. Что это за ключ - мне неизвестно. Так: rtmpdump.exe -r rtmp://video.tvr.by/radio/radio1 -q | vlc.exe -</p><p>Но меня больше интересует, что за поток качает foobar по третьей Вашей строке. Там же должен быть flv с aac (это видно, если сохранить такой поток с пом. rtmpdump на диск), разве это зависит от того, понимает foobar rtmp, или не понимает? Такой же поток&nbsp; flv с aac, получаемый по http, foobar понимает, проверил (moskva.fm, например).</p>]]></content>
			<author>
				<name><![CDATA[k2]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29678</uri>
			</author>
			<updated>2015-04-18T05:35:36Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=93467#p93467</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Есть ли программа, транслирующая поток с stdout в localhost?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=93466#p93466" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>k2 пишет:</cite><blockquote><p>&quot;Нюансы&quot;: <br />1. foobar работает, только если сначала в нём дать команду на подключение, а уж потом запускать vlc. Если же сначала запустить vlc, то - не выйдет. <br />2. Даже при правильном порядке подключается не сразу, а иногда -&nbsp; очень долго.</p></blockquote></div><p>М.б. стоит поиграться с настройками буферизации в foobar?<br />Не пробовали проиграть полученный поток в самом vlc (во втором экземпляре)?</p><p>В качестве теста попробуйте и др. плееры (чтоб понять где ошибка) + можно попробовать др. версии vlc (напр. 2.1.x).<br />Также можете заменить localhost в ком. строке vlc на 127.0.0.1 и в ссылке указывать именно ip + уменьшить &quot;битрейт&quot; потока (правда возрастёт нагрузка на CPU):<br /></p><div class="codebox"><pre><code>vlc.exe -I dummy http://74.208.71.58:8078/listen.pls --sout=#transcode{acodec=mp3,ab=128}:standard{access=http,mux=dummy,dst=127.0.0.1:8000,novideo}</code></pre></div><p>И в foobar указывать:<br /></p><div class="codebox"><pre><code>http://127.0.0.1:8000</code></pre></div><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;Как я тестировал</div><div class="fancy_spoiler"><p>Сам я очень &quot;извращался&quot;:<br /> - Запускал VLC на рабочей машине.<br /></p><div class="codebox"><pre><code>
vlc.exe -I dummy http://74.208.71.58:8078/listen.pls --sout=#transcode{acodec=mp3,ab=256}:standard{access=http,mux=dummy,dst=localhost:8000,novideo}</code></pre></div><p> -&nbsp; Пробрасывал поток по ssh домой.<br /></p><div class="codebox"><pre><code>ssh.exe -R 127.0.0.1:8000:127.0.0.1:8000 user@home-workstation
</code></pre></div><p> - Добавлял в плеер ссылку http://127.0.0.1:8000.<br /> - Плеер (mocp, настройки по умолчанию) запускал двойную буферизацию потока и начинал играть спустя 5-10 секунд.</p><p>Первоначальный вариант запускался локально &quot;дома&quot;:<br /></p><div class="codebox"><pre><code>cvlc &quot;rtmp://video.tvr.by/radio/radio1&quot; --sout &#039;#transcode{acodec=vorb,ab=256}:standard{access=http,mux=ogg,dst=localhost:8010}&#039; </code></pre></div><p>Проблем не наблюдал.</p><p>Кстати, как я понял, vlc для Windows не умеет принимать данные на stdin.</p></div></div><div class="quotebox"><cite>k2 пишет:</cite><blockquote><p>Почему-то то же самое, но с ogg (строка:&nbsp; --sout=#transcode{acodec=vorb,ab=256}:standard{access=http,mux=ogg,dst=localhost:8000,novideo} ) - не работает (хотя поток с заголовком ogg качает, и Mediainfo его опознаёт).</p></blockquote></div><p>Тут уже скорее на форумы поддержки foobar.</p>]]></content>
			<author>
				<name><![CDATA[UNDYING]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27822</uri>
			</author>
			<updated>2015-04-18T05:07:56Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=93466#p93466</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Есть ли программа, транслирующая поток с stdout в localhost?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=93465#p93465" />
			<content type="html"><![CDATA[<p><strong>UNDYING</strong>, спасибо.</p><p>Вторая строка работает, названия треков не передаются.</p><p>Первая строка с нюансами заработала. Нюансы: <br />1. foobar работает, только если сначала в нём дать команду на подключение, а уж потом запускать vlc. Если же сначала запустить vlc, то - не выйдет. <br />2. Даже при правильном порядке подключается не сразу, а иногда -&nbsp; очень долго.</p><p>Странно: то же самое, но с ogg (строка:&nbsp; --sout=#transcode{acodec=vorb,ab=256}:standard{access=http,mux=ogg,dst=localhost:8000,novideo} ) - не работает (хотя поток с заголовком ogg качает, и Mediainfo его опознаёт, но он не проигрывается ничем).&nbsp; </p><p>Третья строка не заработала, в смысле, что foobar не воспроизводит звук. Но опять же, какой-то неизвестный поток точно качает. Сохранил с пом. HC на диск,&nbsp; Mediainfo его не опознал. </p><p>Ещё я попытался слушать localhost:8000 не через foobar, а через сам vlc (копию, разумеется) - ничего не вышло: не сработала даже первая строка! Пишет: &quot;VLC не может открыть MRL &#039;http://127.0.0.1:8000&#039;. Ищите более подробную информацию в лог-файле&quot;. А лог отсутствует.</p>]]></content>
			<author>
				<name><![CDATA[k2]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29678</uri>
			</author>
			<updated>2015-04-18T00:44:32Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=93465#p93465</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Есть ли программа, транслирующая поток с stdout в localhost?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=93447#p93447" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>k2 пишет:</cite><blockquote><p>Ваша строка не заработала у меня, как её не крутил.&nbsp; Пытался сам создать такую строку с пом. vlc-help.txt (написал: --sout-standard-access=&quot;http&quot; --sout-standard-dst=&quot;localhost:8010&quot;) - трансляции тоже&nbsp; нет, появился звук в самом vlc, наверное, строка неправильная.&nbsp; Пробовал делать через &quot;Инструменты - Конфигурация VLM&quot; - какой-то мутный мастер, и результат никакой.</p></blockquote></div><p>Верно, по документации синтаксис ком. строки под Windows и Linux различается (<a href="https://wiki.videolan.org/Transcode/">Under MS Windows</a>). Верный вариант:<br /></p><div class="codebox"><pre><code>vlc.exe -I dummy rtmp://video.tvr.by/radio/radio1 --sout=#transcode{acodec=mp3,ab=256}:standard{access=http,mux=dummy,dst=localhost:8000,novideo}</code></pre></div><div class="quotebox"><cite>k2 пишет:</cite><blockquote><p>Напишите, пожалуйста, ком. строку для самого простого случая: без конвертации звука, и для входного http потока mp3 .&nbsp; Адрес такой: http://74.208.71.58:8078&nbsp; . Пусть поток транслируется на http://127.0.0.1:8000 , который услышу в foobare.</p></blockquote></div><div class="codebox"><pre><code>vlc.exe -I dummy http://74.208.71.58:8078/listen.pls --sout=#standard{access=http,mux=dummy,dst=localhost:8000,novideo}</code></pre></div><p>Для rtmp-потока без перекодировки, скорее всего, не выйдет, т.к. foobar не умеет rtmp, но можете попробовать:<br /></p><div class="codebox"><pre><code>vlc.exe -I dummy rtmp://video.tvr.by/radio/radio1 --sout=#standard{access=http,mux=dummy,dst=localhost:8000,novideo}</code></pre></div><p>mocp, который я использовал в качестве плеера, &quot;ругался&quot; на неверный поток, хотя &quot;умеет играть&quot; flv.</p><p>Можете посмотреть <a href="https://wiki.videolan.org/Documentation:Streaming_HowTo/Command_Line_Examples/">примеры</a> с <a href="https://wiki.videolan.org/Documentation:Streaming_HowTo/">wiki</a> vlc.</p><p><a href="http://74.208.71.58:8078">Radio Dismuke - 1920s &amp; 1930s Popular Music &amp; Jazz</a> - весёлое радио <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" /></p><p>PS: использовал <a href="http://download.videolan.org/pub/videolan/vlc/last/win64/vlc-2.2.0-win64.7z">vlc 2.2.0</a></p>]]></content>
			<author>
				<name><![CDATA[UNDYING]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27822</uri>
			</author>
			<updated>2015-04-17T03:16:37Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=93447#p93447</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Есть ли программа, транслирующая поток с stdout в localhost?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=93419#p93419" />
			<content type="html"><![CDATA[<p><strong>k2</strong>, спасибо за ответы.</p><div class="quotebox"><cite>k2 пишет:</cite><blockquote><p>Напишите, пожалуйста, ком. строку для самого простого случая: без конвертации звука, и для входного http потока mp3 .</p></blockquote></div><p>Хорошо, постараюсь, только проверю - Windows есть только на работе, не всегда есть время протестировать (работаю <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" />), пожалуйста, потерпите немного. </p><div class="quotebox"><cite>k2 пишет:</cite><blockquote><p>И я не понял:<br />- &quot;перекодируем поток в mp3&quot; - зачем нужно перекодировать?</p></blockquote></div><p>Перекодировать - т.к. foobar поддерживает flv только отдельным плагином (сторонним) и я не уверен, что нормально воспроизведёт flv-поток (flv-файл и flv-поток несколько разные вещи). Зато поддержка mp3/ogg/aac медиапотока есть много где (&quot;из коробки&quot;) и более отлажена.<br /></p><div class="quotebox"><cite>k2 пишет:</cite><blockquote><p>- &quot;В теории - сохраняем rtmp-поток (в rtmpdump или VLC)&quot; - сохраняем в файл? - зачем?</p></blockquote></div><p>Несовсем корректно выразился, точнее так - &quot;rtmpdump получает поток, передаёт по stdout в перекодировщик (VLC/ffmpeg/mencoder/lame, например), тот передаёт перекодированный поток (через stdout) на &quot;стример&quot; (ПО, формирующее медиапоток, например ezstream), полученный поток раздаёт сервер потокового вещания (icecast или аналог). Чуть ниже под спойлером нарисую схему работы организации потокового вещания &quot;из личного опыта&quot; и опишу почему нужна перекодировка потока (из flv в mp3/ogg)</p><p>Впринципе, VLC умеет все перечисленные действия в одну команду (и у меня получилось заставить его работать под Linux).</p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;Сам себе интернет радио</div><div class="fancy_spoiler"><p>Лет 5 назад я &quot;поднимал интернет радио&quot; (для себя и пары друзей - все мы были в одной &quot;локалке&quot; от провайдера нашего местного &quot;мухосранска&quot;), схема была такая (пишу по памяти, возможны неточности):<br /></p><div class="codebox"><pre><code>
    +-------------+           +-----------------+
    | консольный  |           |                 |
    |   плеер     |  stdout   | ezstream        |
    | типа mpg123 +----------&gt;+ mp3 256kB/s abr |
    | или mplayer |           |                 |
    +-------------+           +--------+--------+                 
                                       | tcp
                                       V
                              +--------+--------+
                              |     icecast     |
                              | в качестве http |
                              |     сервера     |
                              | раздающего mp3  |
                              |      поток      |
                              +--------+--------+
                                       | http://localhost:8080/play.m3u
                                       V
                              +--------+--------+
                              |    плеер типа   |
                              |      WinAmp     |
                              +-----------------+
</code></pre></div><p>1. &quot;Консольный плеер&quot; (ЕМНИП, mplayer с перекодировкой в mp3) играл файлы в stdout который передавался в ezstream.<br />2. Ezstream формировал поток для раздачи по сети.<br />3. Icecast раздавал поток с ezstream по http.</p><p>Поднимал под Windows (xp), я слушал через XMPlay, знакомые - через WinAmp, WMP, MPC, JetAudio, foobar (вбивали мой адрес, напр http://192.168.0.20:8080 и скачивали m3u-плейлист или напрямую добавляли в плеер ссылку на медиапоток http://192.168.0.20:8080/play.m3u).</p><p>Проблемы у меня были типа:<br />Медиа-файлы были разных форматов (ezstream умел раздавать только mp3 и ogg), поэтому я &quot;дампил&quot; их через mplayer в mp3 320 kB/s CBR, ezstream на основе полученного (с stdin mp3 320 kB/s CBR) формировал поток для раздачи в icecast (сам по себе - http-сервер для раздачи сформированных потоков).</p><p>Icecast - это сервер для раздачи контента, формировать контент (медиа-поток) он не умеет.<br />Ezstream - &quot;стример&quot;, ПО, формирующее медиапоток, который может раздавать icecast. Icecast может раздавать поток в любом виде (<em>возможно, flv тоже</em>), но ezstream умел формировать только mp3/ogg (ПО потокового вещания для windows - дефицит).<br />Mplayer просто проигрывал медиафайлы для ezstream.<br />Был только один &quot;косяк&quot; - криво отображались теги текущего трека, но прослушиванию сие не особо мешало.</p><p><span class="bbu">Если в качестве файла для проигрывания (для mplayer) указать ссылку &quot;http://74.208.71.58:8078&quot;, icecast сможет раздавать перекодированный поток по http://127.0.0.1:8000.</span> Также можно добавить эл-ты типа &quot;сохранения проигрываемого потока в файл&quot;.</p><p>Кстати из &quot;батников&quot; у меня там была простая обвязка типа &quot;перезапущу плеер после окончания плейлиста&quot;, &quot;сформирую плейлист из папки с медиафайлами&quot;, &quot;перемешаю треки в плейлисте&quot;.</p><p>Ресурсов кушало немного, в качестве &quot;рабочей лошадки&quot; я использовал морально устаревший Athlon XP 1800+ Socket-A с 2GB DDR RAM, на &quot;радио&quot; уходило 5-10% нагрузки, глюков особо не замечал, параллельно висели всякие &quot;апачи+пхп+майэскьюэль&quot;, FTP, сервера игр Battlefield 1942, Final Fantasy XI и что-то вроде Lineage II.</p></div></div>]]></content>
			<author>
				<name><![CDATA[UNDYING]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27822</uri>
			</author>
			<updated>2015-04-16T02:22:22Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=93419#p93419</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Есть ли программа, транслирующая поток с stdout в localhost?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=93418#p93418" />
			<content type="html"><![CDATA[<p><strong>UNDYING</strong>, спасибо. Пытаюсь для начала применить VLC.</p><p>Действительно: <br />- Foobar умеет воспроизводить&nbsp; flv (с плагином) - файл и http-поток; <br />- Foobar не знает rtmp; <br />- Streamripper тоже не знает rtmp, <br />- Streamripper умеет принимать http -&nbsp; и раздавать по http (и одновременно сохранять поток в файл).&nbsp; <br />Конкретно: поток mp3 от Streamripper&nbsp; (строка: streamripper.exe&nbsp; http://74.208.71.58:8078&nbsp; -r)&nbsp; я&nbsp; слышу в foobare по адресу http://localhost:8000 .<br />- VLC 2.2.1 понимает rtmp, проверил.</p><p>Ваша строка не заработала у меня, как её не крутил.&nbsp; Пытался сам создать такую строку с пом. vlc-help.txt (написал: --sout-standard-access=&quot;http&quot; --sout-standard-dst=&quot;localhost:8010&quot;) - трансляции тоже&nbsp; нет, появился звук в самом vlc, наверное, строка неправильная.&nbsp; Пробовал делать через &quot;Инструменты - Конфигурация VLM&quot; - какой-то мутный мастер, и результат никакой.</p><p>Напишите, пожалуйста, ком. строку для самого простого случая: без конвертации звука, и для входного http потока mp3 .&nbsp; Адрес такой: http://74.208.71.58:8078&nbsp; . Пусть поток транслируется на http://127.0.0.1:8000 , который услышу в foobare. Или, как вариант, - файл .vlm, который создаёт мастер &quot;Конфигурация VLM&quot;.<br />Заработает это - потом попробуем rtmp flv.</p><p>И я не понял: <br />- &quot;В теории - сохраняем rtmp-поток (в rtmpdump или VLC)&quot; - сохраняем в файл? - зачем?<br />- &quot;перекодируем поток в mp3&quot; - зачем нужно перекодировать?</p>]]></content>
			<author>
				<name><![CDATA[k2]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29678</uri>
			</author>
			<updated>2015-04-15T21:17:29Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=93418#p93418</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Есть ли программа, транслирующая поток с stdout в localhost?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=93384#p93384" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>UNDYING пишет:</cite><blockquote><p>Netcat не умеет обрабатывать HTTP, но получать/отправлять - пожалуйста, естественно, в рамках TCP</p></blockquote></div><p>Согласен, но тогда и грузчик &quot;работает с компьютерами&quot;, потому что грузит их и выгружает. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> Однако ведь для грузчика компьютер — не компьютер, а просто единица груза. Т.е. грузчик работает с грузами, а не с компьютерами, холодильниками и т.п. То же самое и netcat в отношении HTTP. Поэтому считаю моё высказывание вполне корректным.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2015-04-15T03:33:52Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=93384#p93384</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Есть ли программа, транслирующая поток с stdout в localhost?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=93380#p93380" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>YMP пишет:</cite><blockquote><p>А в чём неверность? Получать, как веб-клиент, она ведь тоже не умеет.</p></blockquote></div><p>Фраза не совсем корректна. Netcat оперирует с транспортным уровнем и естественно ничего не знает о HTTP (прикладной уровень).<br />Но HTTP-сервер работает поверх TCP и никто не отменяет обмена трафиком между конечными узлами. Также никто не запрещает загнать данные из netcat в стороннее приложение (и наоборот), которое будет формировать/читать http-заголовки.<br />Netcat не умеет обрабатывать HTTP, но получать/отправлять - пожалуйста, естественно, в рамках TCP (куча изворотов под спойлером).</p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;Offtopic</div><div class="fancy_spoiler"><p>Особые примеры костылей.</p><p>MSYS/Cygwin/*nix:<br /></p><div class="codebox"><pre><code>while true ; do echo -e &#039;HTTP/1.1 200 OK\r\n&#039; | ncat -l -p 2080 ; done</code></pre></div><p>Ещё один изврат на баше:<br /></p><div class="codebox"><pre><code>user@machine:/usr/local/bin# cat ./bash_httpd
#!/bin/bash
x=0;
Log=$( echo -n &quot;[&quot;$(date &quot;+%F %T %Z&quot;)&quot;] $REMOTE_HOST &quot;)$(
       while read I[$x] &amp;&amp; [ ${#I[$x]} -gt 1 ];do
                 echo -n &#039;&quot;&#039;${I[$x]} | sed -e&#039;s,.$,&quot;,&#039;; let &quot;x = $x + 1&quot;;
       done ;
); echo $Log &gt;&gt; /var/log/bash_httpd

Body=$(echo -en &#039;&lt;html&gt;Sample html&lt;/html&gt;&#039;)
echo -en &quot;HTTP/1.0 200 OK\nContent-Type: text/html\nContent-Length: ${#Body}\n\n$Body&quot;</code></pre></div><p><a href="https://nmap.org/ncat/guide/ncat-usage.html#ncat-listen">ncat documentation</a><br /></p><div class="codebox"><pre><code>ncat -l localhost 8080 &lt; hello.http</code></pre></div><div class="codebox"><pre><code>[localhost@user ~]% cat hello.http
HTTP/1.0 200 OK

&lt;html&gt;
  &lt;body&gt;
    &lt;h1&gt;Hello, world!&lt;/h1&gt;
  &lt;/body&gt;
&lt;/html&gt;</code></pre></div><p><a href="https://nmap.org/ncat/guide/ncat-tricks.html#ncat-httpserv">или так</a>:<br /></p><div class="codebox"><pre><code>ncat -lk -p 8080 --sh-exec &quot;echo HTTP/1.1 200 OK&amp; echo(&amp;type index.html&quot;</code></pre></div><p><a href="https://smaftoul.wordpress.com/2009/05/13/netcat-as-a-logging-tcp-proxy/">Или через пайпы</a>, mkfifo (под MSYS не реализованы, под cygwin - запамятовал):<br /></p><div class="codebox"><pre><code>mkfifo proxypipe
cat proxypipe | nc -l 80 | tee -a inflow | sed &#039;s/^Host.*/Host: www.google.fr/&#039; |  nc www.google.fr 80 | tee -a outflow &gt;proxypipe</code></pre></div><p>Как клиент:<br /></p><div class="codebox"><pre><code>ncat.exe -l -p 2080 | ncat.exe www.ru 80 &gt; www.ru
telnet localhost 2080
</code></pre></div><p><a href="http://notes.tweakblogs.net/blog/7955/using-netcat-to-build-a-simple-tcp-proxy-in-linux.html">ещё</a> <a href="https://njh.eu/ncproxy.html">ссылки</a> <a href="https://github.com/avleen/bashttpd">для</a> *nix</p></div></div><p>По теме:<br /></p><div class="quotebox"><cite>k2 пишет:</cite><blockquote><p>Пример: консольная программа streamripper (запись радио) может не только писать файл на диск, но и передавать данные на localhost:порт (&quot;create a relay server&quot;)<br />&lt;...&gt;<br />беру rtmpdump.exe, беру звук по протоколу rtmp, и беру Foobar. <br />&lt;...&gt;<br />1. rtmpdump.exe передаёт по pipe свой выходной поток на искомую программу x.exe (говорят, что так он работает с плеером vlc, который умеет принимать поток через конвейер);</p><p>2. x.exe даёт мне возможность слушать этот поток в Foobar, если я задаю ему http://127.0.0.1:8010/&nbsp; (так Foobar легко работает с streamripper, проверял сам).</p></blockquote></div><p><strong>Foobar</strong> умеет воспроизводить flv (<a href="http://www.hydrogenaud.io/forums/index.php?showtopic=87021">плагином</a>), <strong>но не умеет играть rtmp</strong>? (спрашиваю, потому что не использую foobar)<br /><strong>Streamripper</strong> умеет раздавать (и сохранять) потоковое аудио (mp3), но не умеет rtmp-поток? (судя по описанию на сайте, streamripper создавался для сохранения потокового радио с Shoutcast-серверов, а &quot;он только mp3 умел&quot;)</p><p>В теории - сохраняем rtmp-поток (в <strong>rtmpdump</strong> или <strong>VLC</strong>), перекодируем поток в mp3 (напр <strong>ffmpeg</strong> или <strong>mplayer/mencoder</strong>, или <strong>VLC</strong>), и отдадим полученный mp3 как поток по http (<strong><a href="http://icecast.org">icecast+ezstream</a></strong> или <strong>VLC</strong>).<br />В идеале пока вырисовывается схема с VLC (меньше ПО используется):<br /></p><div class="codebox"><pre><code>
 vlc &quot;rtmp://video.tvr.by/radio/radio1&quot; --sout &#039;#transcode{acodec=vorb,ab=256}:standard{access=http,mux=ogg,dst=localhost:8010}&#039;
</code></pre></div><p>Такой вариант у меня работает (Arch Linux, VLC 2.2.0, в качестве плеера mocp и/или VLC).<br />Можете попробовать изменить кодек (&quot;#transcode{<strong>acodec=vorb</strong>,ab=256}&quot; ... &quot;<strong>mux=ogg</strong>&quot;).<br />И разработчики VLC очень часто &quot;ломают&quot; те или иные ф-ии (<span style="color: gray"><em>проскакивали сообщения, что в релизах 2.0.х не работало воспроизведение rtmp-потоков</em></span> - <strong>я солгал, поддержка rtmp была заявлена к релизу 2.1</strong>), обновляйте VLC и проверяйте всё ли работает + сохраняйте старые дистрибутивы (чтобы была возможность откатиться на предыдущую версию).</p><p>Если VLC не подходит по каким-либо причинам (ресурсов много кушает, например), тогда отпишетесь, я постараюсь вспомнить и расписать как &quot;стримить&quot; через icecast+ezstream.</p>]]></content>
			<author>
				<name><![CDATA[UNDYING]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27822</uri>
			</author>
			<updated>2015-04-14T22:37:42Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=93380#p93380</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Есть ли программа, транслирующая поток с stdout в localhost?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=93348#p93348" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>UNDYING пишет:</cite><blockquote><p>Не совсем верно, но - да, <span class="bbu">netcat не умеет раздавать данные по http как web-сервер</span>.</p></blockquote></div><p>А в чём неверность? Получать, как веб-клиент, она ведь тоже не умеет.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2015-04-14T15:38:58Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=93348#p93348</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Есть ли программа, транслирующая поток с stdout в localhost?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=93347#p93347" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>k2 пишет:</cite><blockquote><p>Сам - точно не разберусь, помогите. Я боюсь наврать в терминах, но - да,&nbsp; http-сервер.</p><p>Нужно вот что: беру rtmpdump.exe, беру звук по протоколу rtmp, и беру Foobar.</p><p>1. rtmpdump.exe передаёт по pipe свой выходной поток на искомую программу x.exe (говорят, что так он работает с плеером vlc, который умеет принимать поток через конвейер);</p><p>2. x.exe даёт мне возможность слушать этот поток в Foobar, если я задаю ему http://127.0.0.1:8010/&nbsp; (так Foobar легко работает с streamripper, проверял сам).</p><p>Задача - найти x.exe.</p></blockquote></div><p>Скорее всего для медиапотока придётся использовать что-то вроде vlc/mplayer/ffmpeg (который умеет как принимать поток так и транслировать). А для текста - netcat или аналог. Т.е. разбить задачу на варианты, т.к. поиск универсального решения скорее закончится ничем.<br />Чуть позднее попробую обыграть варианты.<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;Offtopic</div><div class="fancy_spoiler"><p><a href="http://www.daemon.de/Netcat">продолжаем коллекционировать netcat</a>, <a href="https://nmap.org/ncat/">ещё</a> и <a href="https://www.rodneybeede.com/Compile_Netcat_on_Windows_using_MinGW.html">&quot;компиляем сами&quot; + готовые бинарники</a></p></div></div><div class="quotebox"><cite>k2 пишет:</cite><blockquote><p>Кстати,&nbsp; nc.exe ещё есть тут (cсылка из wiki), версия та же, файл другой, и вирусов аж 25 против 13.</p></blockquote></div><p>Ругань скорее всего из-за:<br /></p><div class="quotebox"><cite>Описание Ncat на сайте nmap, 2-я ссылка в &quot;спойлере&quot; пишет:</cite><blockquote><p>Ncat is a feature-packed networking utility which reads and writes data across networks from the command line. Ncat was written for the Nmap Project <strong>as a much-improved reimplementation of the venerable Netcat</strong>. It uses both TCP and UDP for communication and is designed to be a reliable back-end tool to instantly provide network connectivity to other applications and users. Ncat will not only work with IPv4 and IPv6 but provides the user with a virtually limitless number of potential uses.</p></blockquote></div><br /><p>Собственно поигрался с <a href="https://nmap.org/ncat/">Ncat</a> (<a href="https://nmap.org/dist/nmap-6.47-win32.zip">прямая ссылка на бинарники, ~20 Mb</a>):<br /></p><div class="codebox"><pre><code>@echo off &amp; setlocal ENABLEEXTENSIONS
pushd %~dp0 2&gt;&amp;1 &gt;nul
SET NCBIN=ncat.exe
echo Hello&gt;TESTFILE
start cmd.exe /c &quot;%~dp0%NCBIN% -l -p 2389 &gt; test.txt&quot;
call :sleep 4
cmd.exe /c &quot;TYPE TESTFILE&quot; | %~dp0%NCBIN% localhost 2389
popd 2&gt;&amp;1 &gt;nul


exit /b 0

:sleep
setlocal ENABLEEXTENSIONS &amp; set /a n=%1+1
ping -n %n% 127.0.0.1 &gt;nul
endlocal &amp; exit /b 0
</code></pre></div><p>Описанных вами проблем не наблюдается (при передаче текста), так что прошу прощения за ссылки на &quot;кривые версии&quot; :&#039;(. Вечером попробую поиграться с медиапотоками.</p><div class="quotebox"><cite>YMP пишет:</cite><blockquote><p>netcat с HTTP не работает.</p></blockquote></div><p>Не совсем верно, но - да, <span class="bbu">netcat не умеет раздавать данные по http как web-сервер</span>.</p>]]></content>
			<author>
				<name><![CDATA[UNDYING]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27822</uri>
			</author>
			<updated>2015-04-14T14:38:41Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=93347#p93347</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Есть ли программа, транслирующая поток с stdout в localhost?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=93343#p93343" />
			<content type="html"><![CDATA[<p>netcat с HTTP не работает.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2015-04-14T07:27:40Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=93343#p93343</id>
		</entry>
</feed>
