{"id":2461,"date":"2021-06-16T16:33:37","date_gmt":"2021-06-16T15:33:37","guid":{"rendered":"http:\/\/www.bulis.co.uk\/?page_id=2461"},"modified":"2022-06-06T12:03:10","modified_gmt":"2022-06-06T11:03:10","slug":"audio-video-streaming-service-avss","status":"publish","type":"page","link":"http:\/\/www.bulis.co.uk\/?page_id=2461","title":{"rendered":"Raspberry Pi: Installing Audio Video Streaming Service (AVSS)"},"content":{"rendered":"<p>&nbsp;<\/p>\n<p style=\"text-align: center;\">&lt;&lt;IMAGE&gt;&gt;<\/p>\n<p>In this tutorial we are going to create a headless audio video streaming service. Headless is a Raspberry Pi without a monitor, we\u2019ll also be discarding the keyboard and mouse.<\/p>\n<p>But first a little history about this project; a friend of mine runs a local radio station and asked if I could setup a Raspberry Pi to stream a live video to Facebook. At first I thought OK let\u2019s install OBS studio which is an open source video streaming application. It has become the standard way to stream using Windows, Mac or Linux. The Raspberry Pi runs a version of Linux called Debian; but OBS doesn\u2019t offer a download specifically for the Pi. So I needed to download the source code and compile the software on the Pi.<\/p>\n<p style=\"text-align: center;\">&lt;&lt;IMAGE&gt;&gt;<\/p>\n<p>Great I had installed OBS studio onto the Pi. Unfortunately OBS Studio does not have GPU hardware encoding for the Pi when converting the video stream, which leaves only software encoding. Whilst the Raspberry Pi 4 has a quad core processor running at 1500Mhz; this isn\u2019t enough to cope with the burden of software encoding. At a resolution of 1920&#215;1080 it could only manage 3-4fps (frames per second). So I reduced the resolution to 1280&#215;720 and the frames per second went up to 7fps. Ideally I would like to see a minimum of 20fps. I reduced the resolution further to 960&#215;540 giving 14fps. Still no enough; I then overclocked the processor taking it from 1500Mhz to 2000Mhz now I was getting 18-20fps and I thought this is looking promising. Better take a look at the temperature of the processor \u2026 75\u2019c, that\u2019s not looking good. If I proposed to use OBS the poor Pi wouldn\u2019t last very long without damage. I think we need to look for a different solution.<\/p>\n<p>OBS studio uses FFmpeg under the hood. So instead of using OBS studio we\u2019ll be dealing directly with FFmpeg using the command line. I decided on the official Raspberry Pi Camera for this project as the camera module can be configured with a multitude of options and comes with a program called Raspivid to configure these options, plus it frees up a USB connector. That\u2019s the video side of things taken care of, now for the audio. My friend already had a USB sound card made by Alesis Phono Link so we\u2019re ready to go.<\/p>\n<h4 style=\"text-align: left;\"><span style=\"color: #003366;\"><strong>What we need:<\/strong><\/span><\/h4>\n<table class=\" aligncenter\" style=\"height: 81px;\" width=\"735\">\n<tbody>\n<tr style=\"border: none;\">\n<td style=\"text-align: left; border: none;\" width=\"206\">\u00b7\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Raspberry Pi 4<br \/>\n\u00b7\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 16GB SD Card<br \/>\n\u00b7\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Power Supply Unit<\/td>\n<td style=\"text-align: left; border: none;\" width=\"274\">\u00b7\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 PiCamera with cable<br \/>\n\u00b7\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 5v PWM Fan (speed control)<br \/>\n\u00b7\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 USB Sound card<\/td>\n<td style=\"text-align: left; border: none;\" width=\"255\">\u00b7\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Light Emitting Diode (LED)<br \/>\n\u00b7\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Piezo Speaker<br \/>\n\u00b7\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Switch<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p style=\"text-align: center;\">&lt;&lt;IMAGE&gt;&gt;<\/p>\n<h4 style=\"text-align: left;\"><span style=\"color: #003366;\"><strong>Download:<\/strong><\/span><\/h4>\n<table class=\" aligncenter\" style=\"height: 32px;\" width=\"418\">\n<tbody>\n<tr>\n<td width=\"200\">\u00b7\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <a href=\"https:\/\/www.raspberrypi.org\/software\/operating-systems\/\">Raspbian OS<\/a><\/td>\n<td style=\"text-align: left;\" width=\"200\">\u00b7\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <a href=\"https:\/\/www.chiark.greenend.org.uk\/~sgtatham\/putty\/latest.html\">Putty<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4 style=\"text-align: left;\"><span style=\"color: #003366;\"><strong>Installing the Hardware:<\/strong><\/span><\/h4>\n<p>Because we want to install this headless, we need to find alternative ways of communicating with the user. For this we are going to fit an LED, a switch, a piezo speaker along with a fan to keep everything nice and cool. We will wire these devices to the GPIO pins.<\/p>\n<p>The Raspberry Pi has a 40 pin connector some of which can be used as inputs or outputs. These connectors are called General Purpose Input Output pins. I drilled two holes into the lid of the case to mount both the LED and the switch then fitted the fan and speaker before wiring it up using the following pins:<\/p>\n<p style=\"padding-left: 80px;\">Pin 4 &#8230;&#8230;. Positive Cooling Fan + (red cable) 5v<br \/>\nPin 6 &#8230;&#8230;. Negative Cooling Fan &#8211; (black cable)<br \/>\nPin 8 &#8230;&#8230;. PWM Cooling Fan Switch (blue cable)<br \/>\nPin 12 &#8230;.. LED + (red cable)<br \/>\nPin 14 &#8230;.. LED &#8211; (white cable)<br \/>\nPin 17 &#8230;.. Switch + (red cable) 3v<br \/>\nPin 18 &#8230;.. Switch &#8211; (black cable)<br \/>\nPin 30 &#8230;.. Piezo Speaker &#8211; (black cable)<br \/>\nPin 36 &#8230;.. Piezo Speaker + (red cable) 3v<\/p>\n<h4><span style=\"color: #003366;\"><strong>Install Raspbian:<\/strong><\/span><\/h4>\n<p style=\"text-align: left;\">Download and install the Raspbian Pi Imager from the link above and also Putty (we\u2019ll come back to putty later).<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-2463 aligncenter\" src=\"http:\/\/www.bulis.co.uk\/wp-content\/uploads\/2021\/06\/Rasbian01.png\" alt=\"Raspbian 01\" width=\"420\" height=\"278\" \/><\/p>\n<p style=\"text-align: left;\">Click onto <strong>Choose OS<\/strong> and select Raspberry Pi OS (other):<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-2464 aligncenter\" src=\"http:\/\/www.bulis.co.uk\/wp-content\/uploads\/2021\/06\/Rasbian02.png\" alt=\"Raspbian 02\" width=\"420\" height=\"278\" \/><\/p>\n<p>Click onto <strong>Raspberry Pi OS Lite (32-bit)<\/strong>:<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-2465\" src=\"http:\/\/www.bulis.co.uk\/wp-content\/uploads\/2021\/06\/Rasbian03.png\" alt=\"Raspbian 03\" width=\"420\" height=\"278\" \/><\/p>\n<p>Next<strong> Choose Storage<\/strong> and select the SD card.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-2504\" src=\"http:\/\/www.bulis.co.uk\/wp-content\/uploads\/2021\/06\/Rasbian04.png\" alt=\"Rasbian 04\" width=\"420\" height=\"278\" \/><\/p>\n<p>Click onto <strong>Write<\/strong> and you will see the following warning:<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-2505\" src=\"http:\/\/www.bulis.co.uk\/wp-content\/uploads\/2021\/06\/Rasbian05.png\" alt=\"Rasbian 05\" width=\"420\" height=\"278\" \/><\/p>\n<p>Click onto <strong>Yes<\/strong> to start copying the OS onto the card.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-2506 aligncenter\" src=\"http:\/\/www.bulis.co.uk\/wp-content\/uploads\/2021\/06\/Rasbian06.png\" alt=\"Rasbian 06\" width=\"420\" height=\"278\" \/><\/p>\n<p>Open file explorer and navigate to the boot drive of the SD card and create a new file and name it <strong>ssh<\/strong> without any filename extension. This will have the effect of starting the Pi with SSH (Secure Shell) enabled. Remove the SD card.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-2502 aligncenter\" src=\"http:\/\/www.bulis.co.uk\/wp-content\/uploads\/2021\/06\/ssh.png\" alt=\"ssh\" width=\"580\" height=\"358\" \/><\/p>\n<p>Next place the SD card into the Pi. It may be necessary to connect a monitor just so we can discover the IP address allocated to it, which is displayed during startup.<\/p>\n<p>Armed with the IP address open Putty we downloaded and installed earlier and type in the IP address of the Pi. This opens a window asking to accept an encryption certificate:<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-2503 aligncenter\" src=\"http:\/\/www.bulis.co.uk\/wp-content\/uploads\/2021\/06\/ssh_certificate.png\" alt=\"ssh certificate\" width=\"389\" height=\"341\" \/><\/p>\n<p>Followed by the username and password, the default username is <strong><em>pi<\/em><\/strong> and the default password is <strong><em>raspberry<\/em><\/strong>.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-2508 aligncenter\" src=\"http:\/\/www.bulis.co.uk\/wp-content\/uploads\/2021\/06\/shell01.png\" alt=\"Shell01\" width=\"580\" height=\"367\" \/><\/p>\n<h4><span style=\"color: #003366;\"><strong>The Software:<\/strong><\/span><\/h4>\n<p>Now before we start let\u2019s define how we would like the software to work.<\/p>\n<p><span style=\"color: #003366;\"><strong>Startup Process:<\/strong> <\/span>Power up the Pi and wait until you hear 2 beeps and if headphones are connected hear the words <em>&#8220;Hello this is Raspberry Pi and my IP address is &#8230;&#8221;<\/em> followed by the IP address of the device. This indicates the Pi is ready to start streaming.<\/p>\n<p><span style=\"color: #003366;\"><strong>Configure Settings: <\/strong><\/span>Create a webpage so a computer connected to the local network can open a web browser and type the IP address followed by a colon and port number 8000 to display a preview of the camera image and the settings that can modified<\/p>\n<p><span style=\"color: #003366;\"><strong>Start Stream: <\/strong><\/span>Press the switch once to start streaming to facebook or to test your settings before streaming live to Facebook broadcast over the local area network (LAN) using. The LED, speaker will flash and beep 4 times (morse code letter &#8216;v&#8217; for videoing) before starting the stream if headphones are connected you will also hear the words <em>&#8220;Starting stream&#8221;<\/em>; once streaming begins the led remains on.<\/p>\n<p><span style=\"color: #003366;\"><strong>End Stream:<\/strong><\/span> To stop the stream press the switch again the LED and speaker will flash and beep once (morse code letter &#8216;e&#8217; for ending) and the words <em>&#8220;Ending stream&#8221;<\/em> can be heard through the headphones. The LED will remain off once the stream has stopped<\/p>\n<p><span style=\"color: #003366;\"><strong>Shutdown Process:<\/strong><\/span> To power down the RPi press and hold the switch for four seconds; the led flashes and the speaker beeps three times (morse code letter &#8216;s&#8217; for shutdown) and the words <em>&#8220;Shutting down&#8221;<\/em> can be heard through headphones before starting the shutdown process.<\/p>\n<p><span style=\"color: #003366;\"><strong>Updates:<\/strong><\/span> Updates are downloaded and installed every day, every week, or every month. You can also choose to update\/upgrade the operating system.<\/p>\n<p style=\"text-align: left;\"><span style=\"color: #003366;\"><strong>Trouble-shooter:<\/strong><\/span> If you hear the \u2018sos\u2019 distress message in morse code (ie dot-dot-dot dash-dash-dash dot-dot-dot) repeating, plug in a pair of headphones and listen to one of the following error messages:<\/p>\n<table class=\" aligncenter\" style=\"height: 71px;\" width=\"728\">\n<tbody>\n<tr style=\"border: none;\">\n<td style=\"text-align: left; border: none;\" width=\"356\">\n<p style=\"text-align: left;\">\u00b7\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u201cWarning no camera detected\u201d<\/p>\n<p style=\"text-align: left;\">\u00b7\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u201cWarning no USB sound card detected\u201d<\/p>\n<\/td>\n<td style=\"text-align: left; border: none;\" width=\"356\">\n<p style=\"text-align: left;\">\u00b7\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u201cWarning no network detected\u201d<\/p>\n<p style=\"text-align: left;\">\u00b7\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u201cWarning no internet detected\u201d<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4><\/h4>\n<h4 style=\"text-align: left;\"><span style=\"color: #003366;\"><strong>How To Install:<\/strong><\/span><\/h4>\n<p>I have created a bash script to install AVSS along with all dependencies. Using Putty log into the Pi and create a file called <strong>install_avss.sh<\/strong> by typing<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nnano install_avss.sh\r\n<\/pre>\n<p>Paste the following into the file then press ctrl-S to save the file followed by Ctrl-X to exit:<\/p>\n<pre class=\"brush: python; title: ; notranslate\" title=\"\">\r\n#!\/bin\/bash\r\n# Audio Video Streaming Service (AVSS)\r\n# Script for installing AVSS onto a headless Raspberry Pi installed with buster lite\r\n# Need to make it executable and run as root ie.\r\n# sudo chmod +x install_avss.sh\r\n# followed by\r\n# sudo bash install_avss.sh\r\n# Written by: Phantom Raspberry Blower\r\n# Date May 2021\r\n\r\nif &#x5B; &quot;$EUID&quot; -ne 0 ]\r\nthen echo &quot;Needs to be run as root! Type in: sudo bash install_avss.sh&quot;\r\nexit\r\nfi\r\nWORK_DIR=\/home\/pi\r\necho &quot;-----------------------------------&quot;\r\necho &quot;        Installing updates&quot;\r\necho &quot;-----------------------------------&quot;\r\napt-get -y update\r\necho &quot;-----------------------------------&quot;\r\necho &quot;      Upgrading installation&quot;\r\necho &quot;-----------------------------------&quot;\r\napt-get -y upgrade\r\necho &quot;-----------------------------------&quot;\r\necho &quot;         Installing FFmpeg&quot;\r\necho &quot;-----------------------------------&quot;\r\napt-get -y install ffmpeg\r\necho &quot;-----------------------------------&quot;\r\necho &quot;        Installing festival&quot;\r\necho &quot;-----------------------------------&quot;\r\napt-get -y install festival\r\necho &quot;-----------------------------------&quot;\r\necho &quot;        Installing PiCamera&quot;\r\necho &quot;-----------------------------------&quot;\r\napt-get -y install python-picamera\r\napt-get -y install python3-picamera\r\necho &quot;-----------------------------------&quot;\r\necho &quot;         Installing PyGame&quot;\r\necho &quot;-----------------------------------&quot;\r\napt-get -y install python3-pygame\r\necho &quot;-----------------------------------&quot;\r\necho &quot;          Installing git&quot;\r\necho &quot;-----------------------------------&quot;\r\napt-get -y install git\r\necho &quot;-----------------------------------&quot;\r\necho &quot;          Installing pip&quot;\r\necho &quot;-----------------------------------&quot;\r\napt-get -y install python-pip\r\napt-get -y install python3-pip\r\necho &quot;-----------------------------------&quot;\r\necho &quot;           Installing sh&quot;\r\necho &quot;-----------------------------------&quot;\r\npip install sh\r\necho &quot;-----------------------------------&quot;\r\necho &quot;     Making working directory&quot;\r\necho &quot;-----------------------------------&quot;\r\nmkdir -p &quot;$WORK_DIR&quot;\/.av_stream\r\ncd &quot;$WORK_DIR&quot;\/.av_stream\r\necho &quot;-----------------------------------&quot;\r\necho &quot;        Getting AVSS source&quot;\r\necho &quot;-----------------------------------&quot;\r\ngit clone --recursive https:\/\/github.com\/PhantomRaspberryBlower\/repository.prb-avss &quot;$WORK_DIR&quot;\/.av_stream\r\nmv &quot;$WORK_DIR&quot;\/.av_stream\/.av_stream\/* &quot;$WORK_DIR&quot;\/.av_stream\/\r\nmv &quot;$WORK_DIR&quot;\/.av_stream\/.git &quot;$WORK_DIR&quot;\r\nmv &quot;$WORK_DIR&quot;\/.av_stream\/.gitattributes &quot;$WORK_DIR&quot;\r\nrm -r &quot;$WORK_DIR&quot;\/.av_stream\/.av_stream\r\ncp &quot;$WORK_DIR&quot;\/.av_stream\/config.bkp.ini &quot;$WORK_DIR&quot;\/.av_stream\/config.ini\r\ncp &quot;$WORK_DIR&quot;\/.av_stream\/asound.conf \/etc\/asound.conf\r\ncp &quot;$WORK_DIR&quot;\/.av_stream\/av_stream.service \/etc\/systemd\/system\/av_stream.service\r\ncp &quot;$WORK_DIR&quot;\/.av_stream\/redirect.service \/etc\/systemd\/system\/redirect.service\r\nsystemctl enable \/etc\/systemd\/system\/av_stream.service\r\nsystemctl enable \/etc\/systemd\/system\/redirect.service\r\nchown pi:pi -R &quot;$WORK_DIR&quot;\r\necho &quot;-----------------------------------&quot;\r\necho &quot;           Enable camera&quot;\r\necho &quot;-----------------------------------&quot;\r\nraspi-config nonint do_camera 0\r\necho &quot;-----------------------------------&quot;\r\necho &quot;       Cleanup installation&quot;\r\necho &quot;-----------------------------------&quot;\r\napt -y autoremove\r\necho &quot;===================================&quot;\r\necho &quot;           Completed :)&quot;\r\necho &quot;===================================&quot;\r\necho &quot;&quot;\r\necho &quot;-----------------------------------&quot;\r\necho &quot;           Rebooting&quot;\r\necho &quot;-----------------------------------&quot;\r\nreboot\r\n<\/pre>\n<p>Then type:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nsudo chmod +x install_avss.sh\r\n<\/pre>\n<p>To make it an executable file, type the following to execute the script:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nsudo bash install_avss.sh\r\n<\/pre>\n<p style=\"text-align: center;\">&lt;&lt;IMAGE&gt;&gt;<\/p>\n<p>This will take approx. 30 minutes to complete and will eventually reboot itself. If you hear two beeps about a minute after reboot, everything is working \ud83d\ude42<\/p>\n<p><span style=\"color: #003366;\"><strong>Initial setup Process:<\/strong><\/span><\/p>\n<p>Connect the headphones, network cable, USB soundcard, power cable and power up the Raspberry Pi. Put the headphones on within a minute of the Pi starting and you will hear <em>&#8220;Hello this is Raspberry Pi and my IP address is &#8230;&#8221;<\/em>. Write down the IP address, you will also hear through the built-in speaker two beeps to notify you that the Pi is ready. Using a computer connected to the local network open a web browser and type the IP address you wrote down followed by a colon and port number <strong>8000<\/strong> i.e. if the IP address is &#8220;<strong>192.168.0.10<\/strong>&#8221; type <strong>192.168.0.10:8000<\/strong> into the browser. This displays a webpage with a preview of the camera image and the settings you can modify:<\/p>\n<p style=\"text-align: center;\">&lt;&lt;IMAGE&gt;&gt;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; &lt;&lt;IMAGE&gt;&gt; In this tutorial we are going to create a headless audio video streaming service. Headless is a Raspberry Pi without a monitor, we\u2019ll also be discarding the keyboard and mouse. But first a little history about this project; a friend of mine runs a local radio station and asked if I could setup [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.12 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Raspberry Pi: Installing Audio Video Streaming Service (AVSS) - Phantom Raspberry Blower<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/www.bulis.co.uk\/?page_id=2461\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Raspberry Pi: Installing Audio Video Streaming Service (AVSS) - Phantom Raspberry Blower\" \/>\n<meta property=\"og:description\" content=\"&nbsp; &lt;&lt;IMAGE&gt;&gt; In this tutorial we are going to create a headless audio video streaming service. Headless is a Raspberry Pi without a monitor, we\u2019ll also be discarding the keyboard and mouse. But first a little history about this project; a friend of mine runs a local radio station and asked if I could setup [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"http:\/\/www.bulis.co.uk\/?page_id=2461\" \/>\n<meta property=\"og:site_name\" content=\"Phantom Raspberry Blower\" \/>\n<meta property=\"article:modified_time\" content=\"2022-06-06T11:03:10+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.bulis.co.uk\/wp-content\/uploads\/2021\/06\/Rasbian01.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"http:\/\/www.bulis.co.uk\/?page_id=2461\",\"url\":\"http:\/\/www.bulis.co.uk\/?page_id=2461\",\"name\":\"Raspberry Pi: Installing Audio Video Streaming Service (AVSS) - Phantom Raspberry Blower\",\"isPartOf\":{\"@id\":\"http:\/\/www.bulis.co.uk\/#website\"},\"datePublished\":\"2021-06-16T15:33:37+00:00\",\"dateModified\":\"2022-06-06T11:03:10+00:00\",\"breadcrumb\":{\"@id\":\"http:\/\/www.bulis.co.uk\/?page_id=2461#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/www.bulis.co.uk\/?page_id=2461\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/www.bulis.co.uk\/?page_id=2461#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/www.bulis.co.uk\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Raspberry Pi: Installing Audio Video Streaming Service (AVSS)\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/www.bulis.co.uk\/#website\",\"url\":\"http:\/\/www.bulis.co.uk\/\",\"name\":\"Phantom Raspberry Blower\",\"description\":\"Blowing Raspberrys since 1989\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/www.bulis.co.uk\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-GB\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Raspberry Pi: Installing Audio Video Streaming Service (AVSS) - Phantom Raspberry Blower","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/www.bulis.co.uk\/?page_id=2461","og_locale":"en_GB","og_type":"article","og_title":"Raspberry Pi: Installing Audio Video Streaming Service (AVSS) - Phantom Raspberry Blower","og_description":"&nbsp; &lt;&lt;IMAGE&gt;&gt; In this tutorial we are going to create a headless audio video streaming service. Headless is a Raspberry Pi without a monitor, we\u2019ll also be discarding the keyboard and mouse. But first a little history about this project; a friend of mine runs a local radio station and asked if I could setup [&hellip;]","og_url":"http:\/\/www.bulis.co.uk\/?page_id=2461","og_site_name":"Phantom Raspberry Blower","article_modified_time":"2022-06-06T11:03:10+00:00","og_image":[{"url":"http:\/\/www.bulis.co.uk\/wp-content\/uploads\/2021\/06\/Rasbian01.png"}],"twitter_card":"summary_large_image","twitter_misc":{"Estimated reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"http:\/\/www.bulis.co.uk\/?page_id=2461","url":"http:\/\/www.bulis.co.uk\/?page_id=2461","name":"Raspberry Pi: Installing Audio Video Streaming Service (AVSS) - Phantom Raspberry Blower","isPartOf":{"@id":"http:\/\/www.bulis.co.uk\/#website"},"datePublished":"2021-06-16T15:33:37+00:00","dateModified":"2022-06-06T11:03:10+00:00","breadcrumb":{"@id":"http:\/\/www.bulis.co.uk\/?page_id=2461#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["http:\/\/www.bulis.co.uk\/?page_id=2461"]}]},{"@type":"BreadcrumbList","@id":"http:\/\/www.bulis.co.uk\/?page_id=2461#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/www.bulis.co.uk\/"},{"@type":"ListItem","position":2,"name":"Raspberry Pi: Installing Audio Video Streaming Service (AVSS)"}]},{"@type":"WebSite","@id":"http:\/\/www.bulis.co.uk\/#website","url":"http:\/\/www.bulis.co.uk\/","name":"Phantom Raspberry Blower","description":"Blowing Raspberrys since 1989","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/www.bulis.co.uk\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-GB"}]}},"_links":{"self":[{"href":"http:\/\/www.bulis.co.uk\/index.php?rest_route=\/wp\/v2\/pages\/2461"}],"collection":[{"href":"http:\/\/www.bulis.co.uk\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/www.bulis.co.uk\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/www.bulis.co.uk\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.bulis.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2461"}],"version-history":[{"count":49,"href":"http:\/\/www.bulis.co.uk\/index.php?rest_route=\/wp\/v2\/pages\/2461\/revisions"}],"predecessor-version":[{"id":2614,"href":"http:\/\/www.bulis.co.uk\/index.php?rest_route=\/wp\/v2\/pages\/2461\/revisions\/2614"}],"wp:attachment":[{"href":"http:\/\/www.bulis.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2461"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}