× Αυτή είναι η προαιρετική κεφαλίδα Φόρουμ για το Κουτί Προτάσεων.

Εκπομπή τηλεοπτικού streaming σε Icecast Server 1080p-VP9: Live TV / Manual WebM

Περισσότερα
2 Εβδομάδες 3 Ώρες πριν - 1 Εβδομάδα 5 Ημέρες πριν #201 από dos
(English version below.)

###

Πληροφορίες & Άδεια

Αυτό το εγχειρίδιο δημιουργήθηκε από τον πάροχο streaming dos.gr και διατίθεται ελεύθερα υπό την άδεια Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) . Μπορείτε να το αντιγράψετε, να το τροποποιήσετε και να το αναδημοσιεύσετε, με την προϋπόθεση ότι θα αναφέρετε την αρχική πηγή ( dos.gr ) και θα διατηρείτε την ίδια άδεια.


###

→ Ποιοι είμαστε

Το dos.gr είναι ο πρώτος πάροχος παγκοσμίως που υλοποίησε δημόσια εκπομπή βίντεο σε 1080p WebM/VP9 μέσω Icecast server, όπως αποδεικνύεται από τις καταγραφές στο Internet Archive:

Ιούνιος 2017: Κατάλογος Icecast WebM
Ιούνιος 2017: Ζωντανή εκπομπή dos.gr

Η ομάδα μας δραστηριοποιείται από το 1996, με εξειδίκευση σε:
Live streaming: RTMP, HLS, Icecast, WebRTC, SRT
Μορφές αρχείων: MP4, M3U8, WebM, FLV
Εργαλεία: VDO Panel, Wowza, OBS, FFmpeg, Nginx, Red5
Υλοποίηση ABR, χρήση CDN, χαμηλή καθυστέρηση
Βελτιστοποίηση kernel/sysctl/firewall/caching

→ Υπηρεσίες

Παρέχουμε τεχνική υποστήριξη και εγκατάσταση για:

RTMP / HLS / Icecast streaming
VDO Panel, Wowza, OBS, FFmpeg
Προσαρμοσμένα panels και custom server εφαρμογές
Server optimization (BIOS, thermal, kernel-level)
Τεχνική υποστήριξη σε Ελλάδα και εξ αποστάσεως (SSH, AnyDesk)
Ιστότοπος: dos.gr
Email: Αυτή η διεύθυνση ηλεκτρονικού ταχυδρομείου προστατεύεται από τους αυτοματισμούς αποστολέων ανεπιθύμητων μηνυμάτων. Χρειάζεται να ενεργοποιήσετε τη JavaScript για να μπορέσετε να τη δείτε.

→ Ευχαριστούμε για το ενδιαφέρον σας

Σας ευχαριστούμε που διαβάζετε αυτό το εγχειρίδιο. Ελπίζουμε να σας φανεί χρήσιμο στην προσπάθειά σας να μεταδώσετε περιεχόμενο με τρόπο ανοικτό, οικονομικό και αποδοτικό → Θα χαιρόμασταν ιδιαίτερα αν επισκεφθείτε τον ιστότοπό μας και εξερευνήσετε τις υπηρεσίες μας.

→ Ποιος μπορεί να το χρησιμοποιήσει & γιατί

Απευθύνεται σε:
Ραδιοφωνικούς σταθμούς που θέλουν να δείξουν studio cams - Web TVs, μικρούς broadcasters - Online διδασκαλίες, webinars - Κάμερες παρακολούθησης / science cams - Όποιον έχει μια ιδέα χωρίς budget

→ Γιατί WebM + Icecast;

Χωρίς άδειες/royalties (σε αντίθεση με Wowza, Flussonic, κ.λπ.)
Υποστήριξη από όλους τους σύγχρονους browsers
Ελάχιστες απαιτήσεις σε πόρους
Εξαιρετική ποιότητα εικόνας με χαμηλό bitrate
100% HTML5 – χωρίς Flash ή plugin

→ Περίληψη εγχειριδίου

Αυτό το manual αφορά προγραμματισμένη εκπομπή αποθηκευμένων αρχείων βίντεο (όχι live) μέσω Icecast v2. Σε επόμενο εγχειρίδιο θα περιγράψουμε και τη ζωντανή μετάδοση (live streaming).

→ Προαπαιτούμενα

Θα χρειαστείτε:

Icecast v2.4.4 (Centova Cast σε Linux)
FFmpeg (7.1.1 σε Linux για μετατροπή)
FFmpeg static (6.1.1 σε Windows για εκπομπή)
Ο Icecast μπορεί να είναι τοπικός, σε VPS, ή σε πάροχο, με ή χωρίς panel (π.χ. Centova Cast).
Η εκπομπή στη δική μας περίπτωση γίνεται από Windows για πρακτικούς λόγους.

→ Πλεονεκτήματα & Μειονεκτήματα

Μετατροπή γίνεται 1 φορά, εξαιρετική ποιότητα με μικρό μέγεθος
0% CPU κατά την εκπομπή – δεν υπάρχει real-time transcoding
Σταθερότητα, ιδανικό για low-resource συστήματα

Χρόνος μετατροπής υψηλός (π.χ. 20 ώρες για 1 ώρα video με i9-9900K)
VP9 δεν χρησιμοποιεί πλήρως τα threads
Υπάρχουν ρυθμίσεις που επιταχύνουν (-row-mt, -tile-columns, -cpu-used)
Αλλά η ποιότητα πέφτει ελαφρώς

→ Ρυθμίσεις server Icecast

Για να μπορέσει να γίνει η εκπομπή WebM/VP9 μέσω Icecast v2, απαιτείται η κατάλληλη παραμετροποίηση του αρχείου icecast.xml

Παρακάτω παρέχουμε έτοιμο αρχείο ρυθμίσεων που χρησιμοποιείται στην παραγωγική υλοποίηση του webm.win, σε Icecast v2 server (Centova Cast):

Λήψη αρχείου icewebm.txt <
Το αρχείο περιέχει πλήρη ρύθμιση για:
SSL streaming (HTTPS)
video/webm mountpoint (/dos.webm)
Directory listings για Xiph και άλλους καταλόγους
Κατάλληλες ρυθμίσεις burst-size, queue, timeouts, logging κ.ά.

Μπορείτε να προσαρμόσετε το αρχείο ανάλογα με τις δικές σας ανάγκες.
Η συγκεκριμένη υλοποίηση είναι πλήρως λειτουργική και δοκιμασμένη σε πραγματικές συνθήκες παραγωγής.

→ Ρυθμίσεις Icecast από το Centova Cast panel

Παρακάτω φαίνεται η διαμόρφωση βασικών παραμέτρων μέσω του Centova Cast panel, όπως:

Queue size: 12800000
Burst size: 2560000

Timeout τιμές για Source/Client

Οι συγκεκριμένες τιμές αντιστοιχούν ακριβώς στο icecast.xml που χρησιμοποιείται στην παραγωγική υλοποίηση στο webm.win



Ρυθμίσεις 'Limits'

Η παρακάτω εικόνα δείχνει βασικές παραμέτρους περιορισμών, όπως:

Μέγιστο Bitrate (9000 Kbps) (έχει τεθεί υψηλά για να μην κάνει αυτόματο stop το Centova σε αυτό το stream — και λιγότερο να το βάλετε δεν έχει σημασία, αρκεί να μην είναι μικρότερο από το bitrate του βίντεο που θα εκπέμψετε)

Μέγιστος αριθμός ακροατών
Disk quota & mount point limit



Ρυθμίσεις 'Mount Point'

Ρυθμίσεις για το mount point /dos.webm στο Icecast, όπως:

MIME type: video/webm
Advertised bitrate: 2000 kbps
Stream name & περιγραφή
Stream URL: rdst.win:59000/dos.webm



→ Μετατροπή αρχείων σε WebM/VP9

Για τη μετατροπή των αρχείων μας σε WebM/VP9, επιλέξαμε τη μέθοδο διπλού περάσματος (2-pass encoding) με ffmpeg, καθώς μετά από δοκιμές διαπιστώσαμε ότι με αυτόν τον τρόπο πετυχαίναμε τη μέγιστη δυνατή ποιότητα εικόνας σε σχέση με το μέγεθος αρχείου.

Τα αρχικά αρχεία βίντεο ήταν σε ανάλυση 4K, και μετατράπηκαν σε 1920×1080 με σταθερό framerate 30fps.

Όλα τα βίντεο μετατράπηκαν με την ίδια ακριβώς εντολή, ώστε να διασφαλιστεί πλήρης ομοιομορφία κατά την εκπομπή και την παρακολούθηση από διαφορετικούς browsers και συσκευές. Επιλέξαμε επίσης bitrate ήχου στα 192 kbps, καθώς προσφέρει εξαιρετική ποιότητα χωρίς υπερβολικό μέγεθος.

→ Παράδειγμα εντολής μετατροπής (2-pass VP9 WebM)

ffmpeg -y -i carlcox.mp4 -vf "scale=1920:1080,fps=30" -c:v libvpx-vp9 -b:v 2000k -g 15 -deadline good -cpu-used 0 -threads 16 -pass 1 -an -f webm -passlogfile ./ffmpeg2pass temp_pass1_output.webm

ffmpeg -y -i carlcox.mp4 -vf "scale=1920:1080,fps=30" -c:v libvpx-vp9 -b:v 2000k -g 15 -deadline good -cpu-used 0 -threads 16 -pass 2 -c:a libvorbis -b:a 192k -ar 44100 output_1080p_best_quality_2000k.webm

→ Επεξήγηση βασικών παραμέτρων

Παράμετρος / Περιγραφή
-i carlcox.mp4            Το αρχικό αρχείο εισόδου (σε αυτή την περίπτωση ένα MP4)
-vf "scale=1920:1080,fps=30"    Ορισμός ανάλυσης εξόδου και ρυθμός καρέ
-c:v libvpx-vp9            Video codec VP9
-b:v 2000k            Bitrate video 2000 kbps
-g 15                Απόσταση μεταξύ keyframes (GOP) — ιδανικό για σταθερό seeking
-deadline good            Ισορροπία μεταξύ ποιότητας και ταχύτητας
-cpu-used 0            Μέγιστη ποιότητα (πιο αργή κωδικοποίηση)
-threads 16            Αξιοποίηση 16 CPU threads
-pass 1 / -pass 2        Πρώτο και δεύτερο πέρασμα για βελτιστοποιημένη ποιότητα
-an                Απενεργοποίηση ήχου στο πρώτο πέρασμα (δεν χρειάζεται)
-c:a libvorbis            Χρήση Vorbis codec για τον ήχο
-b:a 192k            Bitrate ήχου 192 kbps
-ar 44100            Συχνότητα ήχου 44.1kHz
-f webm                Format εξόδου WebM
-passlogfile            Αρχείο όπου αποθηκεύεται η πληροφορία του 1ου pass

→ Δημιουργία Playlist και Προγραμματισμένη Εκπομπή

Η εκπομπή των βίντεο WebM γίνεται στη δική μας υλοποίηση μέσω Windows, χρησιμοποιώντας ένα απλό αρχείο λίστας (input.txt) και την παρακάτω εντολή ffmpeg:

-re -f concat -safe 0 -i C:/Users/lyk/Desktop/ffmpegyag/videos/1080p/30fps/input.txt -c copy -f webm -cluster_size_limit 2M -cluster_time_limit 5100 -content_type video/webm icecast://source:Αυτή η διεύθυνση ηλεκτρονικού ταχυδρομείου προστατεύεται από τους αυτοματισμούς αποστολέων ανεπιθύμητων μηνυμάτων. Χρειάζεται να ενεργοποιήσετε τη JavaScript για να μπορέσετε να τη δείτε.:9000/dos.webm

Το αρχείο input.txt περιέχει τις διαδρομές όλων των .webm αρχείων που θα μεταδοθούν διαδοχικά. Παράδειγμα:



Για μεγαλύτερη ευκολία και αξιοπιστία, η εκπομπή εκτελείται ως Windows service μέσω του FireDaemon, ώστε να μπορεί να ξεκινά αυτόματα, να επανεκκινείται σε περίπτωση αποτυχίας, και να λειτουργεί στο παρασκήνιο:



Με αυτόν τον τρόπο, η CPU κατά την εκπομπή παραμένει στο 0%, καθώς δεν πραγματοποιείται καμία επανακωδικοποίηση — το περιεχόμενο είναι ήδη πλήρως έτοιμο για μετάδοση.

Η ίδια διαδικασία μπορεί να υλοποιηθεί εξίσου εύκολα και σε Linux, με τη χρήση cron ή systemd service script.

Σχόλιο:
Θα ήταν ιδιαίτερα χρήσιμο εάν οι προγραμματιστές του Centova Cast πρόσθεταν ενσωματωμένη δυνατότητα υποστήριξης για .webm playlists ή αναπαραγωγή αρχείων μέσω ffmpeg concat. Κάτι τέτοιο θα επέτρεπε την αυτόματη εκπομπή προγραμματισμένου περιεχομένου WebM/VP9 απευθείας από το panel, όπως άλλωστε ήδη συμβαίνει με τα MP3.


→ Τελικές σημειώσεις
Αυτό το εγχειρίδιο καλύπτει βήμα-βήμα όλη τη διαδικασία:
από τη μετατροπή αρχείων και τις ρυθμίσεις του Icecast, μέχρι την προγραμματισμένη εκπομπή σε παραγωγικό περιβάλλον.

Από εδώ και πέρα... ψάξτε και λίγο μόνοι σας!
Το διαδίκτυο είναι γεμάτο παραδείγματα, τεχνικά άρθρα και φυσικά... DeepSeek/ChatGPT, που μπορεί να σας βοηθήσει να πειραματιστείτε παραπάνω — ειδικά σε custom καταστάσεις, αυτοματισμούς ή ενσωματώσεις σε HTML.

Αν θέλετε επαγγελματική υποστήριξη, εμείς είμαστε εδώ:
dos.gr | Αυτή η διεύθυνση ηλεκτρονικού ταχυδρομείου προστατεύεται από τους αυτοματισμούς αποστολέων ανεπιθύμητων μηνυμάτων. Χρειάζεται να ενεργοποιήσετε τη JavaScript για να μπορέσετε να τη δείτε.



###

→ The English version begins here:

###

Information & License

This manual was created by the streaming provider dos.gr and is freely available under the Creative Commons Attribution-ShareAlike 4.0 International license (CC BY-SA 4.0) . You can copy, modify, and republish it, provided that you cite the original source (dos.gr) and maintain the same license.

###



→ Who we are

dos.gr is the first provider worldwide to publicly broadcast 1080p WebM/VP9 video via Icecast server, as evidenced by records in the Internet Archive:

June 2017: Icecast WebM Directory
June 2017: dos.gr live broadcast

Our team has been active since 1996, specializing in:
Live streaming: RTMP, HLS, Icecast, WebRTC, SRT
File formats: MP4, M3U8, WebM, FLV
Tools: VDO Panel, Wowza, OBS, FFmpeg, Nginx, Red5
ABR implementation, CDN usage, low latency
Kernel/sysctl/firewall/caching optimization

→ Services

We provide technical support and installation for:

RTMP / HLS / Icecast streaming
VDO Panel, Wowza, OBS, FFmpeg
Custom panels and custom server applications
Server optimization (BIOS, thermal, kernel-level)
Technical support in Greece and remotely (SSH, AnyDesk)
Website: dos.gr
Email: Αυτή η διεύθυνση ηλεκτρονικού ταχυδρομείου προστατεύεται από τους αυτοματισμούς αποστολέων ανεπιθύμητων μηνυμάτων. Χρειάζεται να ενεργοποιήσετε τη JavaScript για να μπορέσετε να τη δείτε.

→ Thank you for your interest

Thank you for reading this manual. We hope you find it useful in your effort to broadcast content openly, economically, and efficiently. → We would be particularly pleased if you visited our website and explored our services.

→ Who can use it & why

Intended for:
Radio stations wanting to show studio cams - Web TVs, small broadcasters - Online lessons, webinars - Surveillance cameras / science cams - Anyone with an idea without budget

→ Why WebM + Icecast?

No licenses/royalties (unlike Wowza, Flussonic, etc.)
Supported by all modern browsers
Minimal resource requirements
Excellent image quality with low bitrate
100% HTML5 – no Flash or plugins

→ Manual summary

This manual covers scheduled broadcasting of stored video files (not live) via Icecast v2. In a future manual, we will describe live streaming.

→ Requirements

You will need:

Icecast v2.4.4 (Centova Cast on Linux)
FFmpeg (7.1.1 on Linux for conversion)
FFmpeg static (6.1.1 on Windows for broadcasting)
Icecast can be local, on VPS, or at a provider, with or without a panel (e.g., Centova Cast).
Our broadcasting is done from Windows for practical reasons.

→ Advantages & Disadvantages

Conversion is done once, excellent quality with small file size
0% CPU usage during broadcast – no real-time transcoding
Stability, ideal for low-resource systems

High conversion time (e.g., 20 hours for 1-hour video with i9-9900K)
VP9 does not fully utilize threads
There are settings to speed up encoding (-row-mt, -tile-columns, -cpu-used)
But quality slightly decreases

→ Icecast server settings

To broadcast WebM/VP9 via Icecast v2, proper configuration of icecast.xml is required.

Below we provide a ready-made configuration file used in the production implementation of webm.win on Icecast v2 server (Centova Cast):

Download icewebm.txt file <
This file includes complete settings for:
SSL streaming (HTTPS)
video/webm mountpoint (/dos.webm)
Directory listings for Xiph and other directories
Proper settings for burst-size, queue, timeouts, logging, etc.

You can adapt the file according to your needs.
This implementation is fully functional and tested in real production conditions.

→ Icecast settings via Centova Cast panel

Below shows configuration of basic parameters via Centova Cast panel, such as:

Queue size: 12800000
Burst size: 2560000

Timeout values for Source/Client

These values exactly match the icecast.xml used in the production implementation on webm.win



Limits settings

The image below shows basic restriction parameters, such as:

Maximum Bitrate (9000 Kbps) (set high to prevent Centova from auto-stopping this stream—setting lower doesn't matter, as long as it's not lower than your video bitrate)

Maximum listener number
Disk quota & mount point limit



Mount Point settings

Settings for mount point /dos.webm on Icecast, such as:

MIME type: video/webm
Advertised bitrate: 2000 kbps
Stream name & description
Stream URL: rdst.win:59000/dos.webm



→ Converting files to WebM/VP9

For converting files to WebM/VP9, we chose the 2-pass encoding method with ffmpeg, as tests showed it achieves the best image quality relative to file size.

Original videos were 4K, converted to 1920×1080 at constant 30fps.

All videos used the exact same command for uniformity during broadcast and playback across browsers and devices. Audio bitrate was set to 192 kbps for excellent quality without excessive size.

→ Example conversion command (2-pass VP9 WebM)

ffmpeg -y -i carlcox.mp4 -vf "scale=1920:1080,fps=30" -c:v libvpx-vp9 -b:v 2000k -g 15 -deadline good -cpu-used 0 -threads 16 -pass 1 -an -f webm -passlogfile ./ffmpeg2pass temp_pass1_output.webm

ffmpeg -y -i carlcox.mp4 -vf "scale=1920:1080,fps=30" -c:v libvpx-vp9 -b:v 2000k -g 15 -deadline good -cpu-used 0 -threads 16 -pass 2 -c:a libvorbis -b:a 192k -ar 44100 output_1080p_best_quality_2000k.webm

→ Explanation of key parameters

Parameter / Description
-i carlcox.mp4          Original input file (MP4)
-vf "scale=1920:1080,fps=30"    Output resolution and frame rate
-c:v libvpx-vp9         Video codec VP9
-b:v 2000k          Video bitrate 2000 kbps
-g 15               Keyframe distance (GOP)—ideal for stable seeking
-deadline good          Balance between quality and speed
-cpu-used 0         Maximum quality (slower encoding)
-threads 16         Using 16 CPU threads
-pass 1 / -pass 2       First and second pass for optimized quality
-an             Disable audio in the first pass (not needed)
-c:a libvorbis          Vorbis codec for audio
-b:a 192k           Audio bitrate 192 kbps
-ar 44100           Audio frequency 44.1kHz
-f webm             Output format WebM
-passlogfile            File storing 1st pass information

→ Playlist creation & scheduled broadcast

Broadcasting is done via Windows, using a simple input.txt playlist and ffmpeg command:

-re -f concat -safe 0 -i C:/Users/lyk/Desktop/ffmpegyag/videos/1080p/30fps/input.txt -c copy -f webm -cluster_size_limit 2M -cluster_time_limit 5100 -content_type video/webm icecast://source:Αυτή η διεύθυνση ηλεκτρονικού ταχυδρομείου προστατεύεται από τους αυτοματισμούς αποστολέων ανεπιθύμητων μηνυμάτων. Χρειάζεται να ενεργοποιήσετε τη JavaScript για να μπορέσετε να τη δείτε.:9000/dos.webm

The file input.txt contains the paths of all .webm files to be played sequentially. Example:



For greater convenience and reliability, the broadcast is run as a Windows service via FireDaemon, enabling it to start automatically, restart in case of failure, and operate in the background:



In this way, CPU usage during broadcasting remains at 0%, since no re-encoding takes place — the content is already fully prepared for streaming.

The same process can be just as easily implemented on Linux, using a cron job or a systemd service script.

Comment:
It would be especially helpful if the developers of Centova Cast added built-in support for .webm playlists or playback of files via ffmpeg concat. This would allow for automatic broadcasting of scheduled WebM/VP9 content directly from the panel — just like it already works with MP3.


→ Final Notes
This manual provides a step-by-step guide for the entire process:
from file conversion and Icecast configuration to scheduled broadcasting in a production environment.

From this point on... explore a little on your own!
The internet is full of examples, technical articles, and of course... DeepSeek/ChatGPT, which can help you experiment further — especially with custom setups, automation, or HTML integration.

If you need professional support, we’re here:
dos.gr | Αυτή η διεύθυνση ηλεκτρονικού ταχυδρομείου προστατεύεται από τους αυτοματισμούς αποστολέων ανεπιθύμητων μηνυμάτων. Χρειάζεται να ενεργοποιήσετε τη JavaScript για να μπορέσετε να τη δείτε.

---

→ Archived at 26.May.2025: Internet Archive (Wayback Machine) - Zenodo (DOI) - Licensed under CC BY-SA 4.0
Ο/η αρθρογράφος, έχει λάβει ευχαριστίες από: lyk

Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.

Περισσότερα
6 Ώρες 7 Λεπτά πριν #202 από lyk

Με μεγάλο ενδιαφέρον για την προβολή και προώθηση της ιστορίας και του πολιτισμού της Ελλάδας μας!

Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.

Χρόνος δημιουργίας σελίδας: 0.084 δευτερόλεπτα
Επικοινωνήστε μαζί μας, στα τηλ: α (+30) 212.213.2730, β (+30) 210.440.2730, ή στο Telegram, για να σας προσφέρουμε αυτό που θα καλύψει απόλυτα τις ανάγκες σας, αλλά και θα σας συμφέρει πραγματικά

↳ Αυτήν τη στιγμή υπάρχουν σε όλο τον ιστότοπό μας 32 επισκέπτες ←