Pliki multimedialne dla Event Flow

Używaj własnych dźwięków, obrazów, GIF-ów i filmów w OBS.

Krótka odpowiedź

Aplikacja komputerowa Social Stream może odtwarzać zatwierdzone lokalne pliki bez przesyłania. Użyj Wybierz plik lokalny w Event Flow, a następnie skopiuj wygenerowany Lokalny URL Flow Actions do OBS.

Rozszerzenie Chrome nie może samodzielnie udostępniać plików z dysku. Użytkownicy rozszerzenia powinni nadal używać Upload lub hostowanego URL multimediów, chyba że uruchamiają też obsługiwaną aplikację towarzyszącą.

Wybierz najlepszą ścieżkę

Najszybsze Wbudowane przesyłanie

Najlepsze dla niewielkiej biblioteki i minimalnej konfiguracji.

Duże lub współdzielone biblioteki Chmurowy magazyn obiektów

Najlepsze dla dużej ilości multimediów, kopii zapasowych i użycia z wielu komputerów.

1Event Flow

Nagroda lub wiadomość wyzwala akcję.

2Flow Actions

actions.html odbiera akcję.

3URL multimediów

OBS ładuje dźwięk, obraz, GIF lub film.

Opcja 1: użyj wbudowanego przesyłania

  1. W Event Flow wybierz Odtwórz klip dźwiękowy lub Wyświetl nakładkę multimedialną.
  2. Kliknij Prześlij, wybierz plik i dokończ przesyłanie na otwartej stronie.
  3. Sprawdź, czy zwrócony https://fileuploads.socialstream.ninja/media/... URL pojawia się w akcji.
  4. Zapisz przepływ i pozostaw actions.html?session=YOUR_SESSION otwarte w OBS.

Jeśli witryna przesyłania pokazuje limit konta 1 GB, a Twoja biblioteka go przekroczy, użyj opisanej poniżej opcji lokalnego folderu lub magazynu chmurowego.

Właściwości Event Flow Display Media Overlay z polem Media URL i przyciskiem Upload
Przycisk Upload tworzy hostowany URL. Nie jest selektorem lokalnych plików do odtwarzania Event Flow.

Opcja 2: przechowuj bibliotekę na komputerze OBS

Samodzielna aplikacja komputerowa zawiera Local Media Library i serwer loopback nasłuchujący tylko na tym komputerze. Event Flow zapisuje stabilny identyfikator medium zamiast ścieżki dyskowej w przepływie.

  1. Uruchom samodzielną aplikację Social Stream i otwórz Event Flow.
  2. Wybierz Odtwórz klip dźwiękowy lub Wyświetl nakładkę multimedialną.
  3. Kliknij Wybierz plik lokalny i wybierz plik dźwiękowy, obraz, GIF lub film.
  4. Sprawdź, czy akcja zgłasza dostępność pliku i działanie lokalnego serwera.
  5. Kliknij Kopiuj lokalny URL Flow Actions dla OBS.
  6. Wklej ten URL do źródła przeglądarkowego OBS, zapisz przepływ i przetestuj akcję.
  • Użyj Podgląd aby sprawdzić wybrany plik.
  • Jeśli plik zostanie przeniesiony lub zmieni nazwę, Event Flow pokaże go jako brakujący. Kliknij Połącz ponownie i wybierz nową lokalizację; istniejące przepływy nadal działają.
  • Użyj Pokaż w folderze gdy musisz znaleźć oryginalny plik.
  • Pozostaw SSApp uruchomione, gdy OBS używa lokalnego URL Flow Actions.
  • Nie udostępniaj wygenerowanego URL. Zawiera prywatny losowy token dostępu chroniący lokalny serwer.

Użyj wygenerowanego lokalnego URL Flow Actions. Hostowana https://socialstream.ninja/actions.html strona nie może rozpoznać identyfikatora medium z biblioteki aplikacji komputerowej.

Zaawansowana alternatywa: uruchom własny lokalny serwer

Poniższa ręczna konfiguracja pozostaje dostępna, jeśli nie używasz zarządzanej Local Media Library SSApp.

Pobierz i wypakuj Folder źródeł Social Stream Ninja, a następnie utwórz user-media folder wewnątrz niego.

C:\SSN\social_stream\
  actions.html
  user-media\
    audio\booty.mp3
    images\reward.png
    video\celebration.mp4

Uruchom ręczny lokalny serwer HTTP

  1. Zainstaluj Python, jeśli nie jest jeszcze zainstalowany.
  2. Otwórz PowerShell lub Wiersz polecenia i uruchom to polecenie. Pozostaw okno otwarte podczas transmisji.

Polecenie Windows

py -m http.server 8765 --bind 127.0.0.1 --directory "C:\SSN\social_stream"

Polecenie macOS lub Linux

python3 -m http.server 8765 --bind 127.0.0.1 --directory "/path/to/social_stream"

URL Flow Actions dla źródła przeglądarkowego OBS

http://127.0.0.1:8765/actions.html?session=YOUR_SESSION_ID

Adresy URL multimediów do wklejenia w Event Flow

http://127.0.0.1:8765/user-media/audio/booty.mp3
http://127.0.0.1:8765/user-media/images/reward.png
http://127.0.0.1:8765/user-media/video/celebration.mp4
Źródło przeglądarkowe OBS
127.0.0.1:8765/actions.html
Lokalne multimedia
127.0.0.1:8765/user-media/...

Ustawienie --bind 127.0.0.1 ogranicza dostęp do serwera do tego komputera. Ten prosty serwer służy do lokalnego użycia podczas transmisji, a nie do publicznego hostingu w Internecie.

file://: działa, ale jest bardziej podatne na problemy

Jeśli nie chcesz uruchamiać lokalnego serwera, skieruj OBS na lokalną stronę Flow Actions i używaj również lokalnych adresów URL multimediów:

file:///C:/SSN/social_stream/actions.html?session=YOUR_SESSION_ID
file:///C:/SSN/social_stream/user-media/audio/booty.mp3
  • Używaj ukośników i unikaj spacji lub znaków specjalnych w nazwach folderów i plików.
  • Zarówno strona Flow Actions, jak i multimedia muszą być lokalne. Hostowana actions.html strona nie może odczytać tej ścieżki.
  • Jeśli OBS odmawia odtworzenia lokalnego pliku, użyj opisanej powyżej metody lokalnego serwera HTTP.

A co z rozszerzeniem Chrome?

Rozszerzenie używa tego samego formatu Event Flow, więc przepływy utworzone w aplikacji komputerowej pozostają zgodne. Akcje lokalne zapisują niejawny identyfikator medium zamiast ścieżki Windows, macOS lub Linux.

Rozszerzenie nie może samodzielnie udostępniać dowolnych plików z dysku do OBS. Bez obsługiwanego mostu towarzyszącego użyj Prześlij lub zwykłego hostowanego URL. Jeśli zaimportowany przepływ odwołuje się do lokalnych multimediów, rozszerzenie wyjaśnia, że potrzebna jest aplikacja komputerowa lub most, zamiast milcząco zawodzić.

Opcja 3: hostuj większą bibliotekę online

DostawcaDobre doWażne uwagi
Cloudflare R2 Najlepszy ogólny wybór dla publicznej biblioteki alertów. Magazyn Standard obejmuje obecnie 10 GB-miesięcy miesięcznie i bezpłatny transfer wychodzący do internetu. Do produkcji użyj własnej domeny; r2.dev ma ograniczoną częstotliwość żądań i jest przeznaczony do prac programistycznych.
Backblaze B2 Niedrogi magazyn zgodny z S3 z publicznymi adresami URL plików. Pierwsze 10 GB jest obecnie bezpłatne; magazyn i transfer wychodzący ponad uwzględnione limity są płatne.
Amazon S3 lub inny host zgodny z S3 Istniejące konta chmurowe i zaawansowana kontrola dostępu. Włącz publiczny odczyt multimediów, ustaw prawidłowe typy treści i dodaj regułę CORS tylko do odczytu, jeśli żądania przeglądarki tego wymagają.
GitHub Kilka małych publicznych plików lub okazjonalne pobieranie wydań. Zwykłe repozytoria blokują pliki powyżej 100 MiB, a witryny GitHub Pages mają limit 1 GB opublikowanej witryny. Wydania pozwalają na większe zasoby, ale są niewygodne jako zarządzana biblioteka multimediów alertów.

Publiczne znaczy publiczne. Każdy z adresem URL obiektu może uzyskać dostęp do multimediów. Nie przesyłaj prywatnych, licencjonowanych ani osobistych plików, których nie należy udostępniać.

Konfiguracja Cloudflare R2

  1. Utwórz bucket R2, używając Standard klasy magazynu.
  2. Prześlij multimedia z czytelnymi nazwami folderów, takimi jak audio/, images/ i video/.
  3. W ustawieniach bucketu włącz dostęp publiczny. Używaj publicznego URL deweloperskiego tylko do testów albo podłącz własną domenę do regularnych transmisji.
  4. Otwórz URL obiektu w prywatnym oknie/incognito przeglądarki. Powinien ładować plik bezpośrednio, bez logowania ani strony udostępniania.
  5. Wklej ten bezpośredni URL HTTPS do akcji Event Flow.

Zwykłe obrazy i dźwięk zazwyczaj ładują się bez własnych ustawień CORS. Jeśli własna nakładka, czcionka, odtwarzacz wideo lub pobieranie przeglądarki zgłasza błąd CORS, otwórz Bucket → Settings → CORS Policy i dodaj politykę tylko do odczytu:

[
  {
    "AllowedOrigins": [
      "https://socialstream.ninja",
      "http://127.0.0.1:8765"
    ],
    "AllowedMethods": ["GET", "HEAD"],
    "AllowedHeaders": ["Range"],
    "ExposeHeaders": [
      "Content-Length",
      "Content-Range",
      "Accept-Ranges"
    ],
    "MaxAgeSeconds": 3600
  }
]

Dodaj dokładne origin każdej innej strony pobierającej pliki. Origin nie zawiera ścieżek ani końcowego ukośnika. Jeśli własna domena była już buforowana przed dodaniem CORS, wyczyść pamięć podręczną tej nazwy hosta.

Oficjalne źródła: publiczne buckety R2, CORS R2 i Cennik R2.

Przykład CORS Backblaze B2

Upublicznij bucket, użyj bezpośredniego URL pliku i zastosuj regułę tylko do pobierania, jeśli przeglądarka zgłasza błąd CORS:

[
  {
    "corsRuleName": "allowSSNMedia",
    "allowedOrigins": ["https://socialstream.ninja"],
    "allowedHeaders": ["range"],
    "allowedOperations": ["b2_download_file_by_name"],
    "exposeHeaders": [
      "content-length",
      "content-range",
      "accept-ranges"
    ],
    "maxAgeSeconds": 3600
  }
]

Zobacz należącą do Backblaze oficjalną dokumentację reguł CORS.

Przed transmisją

  1. Otwórz dokładny URL multimediów w prywatnym oknie/incognito. Musi ładować plik bezpośrednio.
  2. Użyj Obraz dla multimediów PNG, JPG, WebP lub GIF. Użyj Wideo/osadzanie dla adresów URL wideo lub osadzania.
  3. Dla zgodności preferuj MP3 dla dźwięku, PNG/WebP/GIF dla obrazów i H.264/AAC MP4 dla wideo.
  4. Otwórz stronę Flow Actions w OBS z tym samym identyfikatorem sesji co Event Flow.
  5. Użyj panelu testowego Event Flow, a następnie przed prawdziwą transmisją raz odśwież źródło przeglądarkowe OBS.
  • URL pobiera zamiast odtwarzać: host wysyła niewłaściwy typ treści lub odpowiedź wymuszającą pobranie.
  • Plik w chmurze jest blokowany: udostępnij go publicznie i sprawdź origin, metodę i nagłówki CORS.
  • Brakuje lokalnego pliku: otwórz akcję w SSApp i użyj Połącz ponownie.
  • Lokalny serwer jest offline: uruchom SSApp i skopiuj lokalny URL Flow Actions ponownie, jeśli zmienił się port lub token bezpieczeństwa.
  • Hostowane Flow Actions nie może odtworzyć lokalnego elementu: zastąp URL OBS adresem wygenerowanym przez SSApp.
  • Nic nie dociera do OBS: sprawdź, czy URL Flow Actions i Event Flow używają tego samego identyfikatora sesji.