predvajalnik in rezalnik radijskega arhiva


povezava do tega časa in stanja rezalnika+lepilca

skoči na
.
lepilec:
za predvajalnik potrebujete JAVASCRIPT, ki trenutno ni omogočen.

namig za rezanje dolgih izrezkov: najprej nastavi rezalnik na željen konec izrezka (recimo na zadnji dve sekundi) in s poslušanjem generiranega izrezka preveri, če si konec pravilno ujel. Če ne, ga strimmaj s spreminjanjem milisekund v polju za izbiro časa konca izrezka. Šele ko si zadovoljen s koncem, nastavi začetek rezalnika na začetek željenega izrezka in strimaj še začetek s popravljanjem milisekund v polju za izbiro časa začetka izrezka. Zakaj pri dolgih izrezkih najprej konec? Zato, ker bi moral prenesti cel dolg izrezek v player izrezka (137 MB/uro), da vidiš, da si zajebal konec. Za krajše cute pa je čisto vseeno, ker se par sekund zvoka prenese takoj.

če želiš narediti dolg posnetek, ki je lepljenka več kratkih izrezkov, uporabi lepilec. gumb nov segment doda nov segment v lepilec, z "v rezalnik" pa izberemo, kateri segment urejamo v rezalniku.

sveža vsebina v ta predvajalnik pride vsako minuto avtomatično (ni treba osveževati strani)

pripombe/predlogi/težave/nedelovanje: kontakt anton@sijanec.eu ali antons na chatu


TODO (kako je treba izpopolniti ta program):
  • Switch from simple HTML5 audio to MediaElementAudioSourceNode for gapless playback that fetches pieces via cut.sh. To bo zajebano, ker so chunki zelo veliki. Recimo HLS libi ne znajo hendlat tega streama. Lahko pa naredimo en hack. Lahko naredimo nek konglomerat cut.sh in zadnji.sh, ki generira fake file za podan dan. Zakaj samo dan in ne cel arhiv? Ker je po mojem edini način, da seeknemo na n-ti bajt fake fajla, ki ga generira ffmpeg, da vržemo stran prvih n bajtov, ki jih generira ffmpeg. To bo hitro postalo potratno. En dan je dober kompromis. Uporabniki bodo doživeli kratek hiccup samo iz enega dneva na drugega, zdaj pa ga iz ene na drugo uro. Ja to je dobra ideja.
  • Integracija z gindex.py: Pokaži komad, ki se predvaja (in komade naprej/nazaj ala infinite scroll seznam). Scraper je že narejen: http://anton.radiostudent.si/arhiv/cgi/gindex.py?05.08.2025
  • Poreži začetno in končno tišino server side iz chunkov pred generiranjem izrezka. Pozor: bodi pozoren na to kako se to obnaša z -to in -ss https://superuser.com/questions/1362176/how-to-trim-silence-only-from-beginning-and-end-of-mp3-files-using-ffmpeg. Če se le da brez transcodinga. Ampak najbrž bo kar treba transcodat.
  • handle when EventSource disconnects: every minute if unconnected do newm3u and try to reconnect DONE
  • popravi da te ob out of bounds accessu ne warpa na glava-1s ampak na zadnjo sekundo zadnjega chunka DONE v funkciji pojdi
  • dodaj konkatenator izrezkov, torej da lahko izrezek daš v seznam izrezkov in potem na koncu dobiš še konkatenacijo vseh teh izrezkov. ideja delovanja: narediš prvi izrezek, ga daš v konkatenator, oznaki A in B se ti sprostita za naslednji izrezek, ki ga spet daš v konkatenator itd. nato poslušaš/preneseš konkatenacijo in vsak izrezek v konkatenaciji lahko premikaš naprej/nazaj in ga tudi popraviš. torej v izrezovalniku lahko urejaš samo po en izrezek hkrati, v konkatenatorju pa potem urejaš izrezke.