Extension:TimedMediaHandler
Stav rozšíření: stabilní |
|
---|---|
Implementace | Média, API |
Popis | Poskytuje integrovanou podporu pro překódování na straně serveru, WebM, Ogg Theora, Vorbis, MP3, Speex a Timed Text |
Autoři | Michael Dale, Jan Gerber, Tim Starling, James Heinrich, Brooke Vibber, Derk-Jan Hartman |
Nejnovější verze | 0.6.0 |
Zásady kompatibility | Vydání snímků současně s MediaWiki. Hlavní vývojová větev není zpětně kompatibilní. |
Změny v databázi | Ano |
Tabulky | transcode |
Licence | GNU General Public License 2.0 nebo novější |
Stáhnout | |
|
|
|
|
|
|
Přeložte rozšíření TimedMediaHandler, používá-li lokalizaci z translatewiki.net | |
Problémy | Otevřené úkoly · Nahlásit chybu |
Rozšíření TimedMediaHandler umožňuje zobrazovat zvukové a obrazové soubory na stránkách wiki pomocí stejné syntaxe jako pro soubory image. Obsahuje VideoJS Player. Má podporu pro titulky a popisky (také známé jako Časovaný text), přepínání streamu v reálném čase mezi více WebM a dalšími deriváty a mnoho dalších funkcí. Podpora TMH na straně serveru zahrnuje možnosti pro nahrávání zvuku a videa HTML5, více profilů transkódování pro doručování obsahu, přehrávání souborů MIDI, analýzu metadat pro videa Ogg a WebM a integraci se systémem MediaWiki frontou úloh pro plánování transkódovacích úloh.
Přehled funkcí
Pro přehrávač viz: VideoJS Player.
Funkce titulkového systému naleznete na stránce Commons:Časovaný text.
Syntaxe shrnutí
Kromě syntaxe vložení obrázku podporuje Timed Media Handler:
- [[File:Video.ogv]]
- Zobrazit video v jeho nominální velikosti. Zobrazí statický obrázek od středu s tlačítkem přehrávání pro spuštění vyskakovacího přehrávače videa.
- [[File:Audio.oga]]
- Zobrazit zástupný symbol pro zvukový soubor s tlačítkem přehrávání. Přehrávač se zobrazí přímo v textu nebo jako vyskakovací okno, pokud má zvukový soubor skryté titulky.
- [[File:Midi.mid]]
- Generujte digitální zvuk z hudebních instrukcí v souboru MIDI a ukažte vloženému audio přehrávači, aby tento zvuk přehrál.
- [[File:Video.ogv|thumb]]
- Zobrazit video v plovoucím poli s miniaturami
<gallery>File:Video.ogv</gallery>
- Zobrazit video vložené do galerie obrázků (u každého klipu se zobrazí dialogové okno pro celý přehrávač)
- [[File:Video.ogg|thumbtime=1:25]]
- Jako zástupný obrázek použijte snímek z 1 minuty a 25 sekund videa. Jako posun v sekundách se bere jedno číslo. Lze také použít formát HH:MM:SS, např. 1:02:22 bude 1 hodina, 2 minuty a 22 sekund videa. Sekundy s plovoucí desetinnou čárkou jsou podporovány (ale na wiki stránkách Wikimedie nefungují: phab:T228467).
- [[File:Video.ogg|start=1:25]]
- Fragmenty časových médií zobrazí videoklip začínající 1 minutou a 25 sekundami videa. Jako posun v sekundách se bere jedno číslo. Můžete také zahrnout čas ukončení ve tvaru
end=1:30
, což by vedlo k přehrávání klipu o délce 5 sekund od 1:25 do 1:30. Pokud není zadána hodnota thumbtime, bude pro zobrazenou miniaturu použit čas začátku. Lze také použít formát HH:MM:SS, např. 1:02:22 bude 1 hodina, 2 minuty a 22 sekund videa. - Parametry
start=
aend=
lze také použít jako parametry dotazu v URL adrese stránky souboru videa. - [[File:Video.ogg|muted]]
- Spusťte média se ztlumeným zvukem. (zavedeno od 1.39)
- [[File:Video.ogg|loop]]
- Přehrávání videa v nepřetržité smyčce. (zavedeno od 1.39)
- Zastaralé
- Syntaktická slova noicon a noplayer jsou zastaralá a nefungují. Klíčové slovo disablecontrols bude pravděpodobně zastaralé. (Podívejte se na stránku T135537) Přijímá čárkami oddělený seznam libovolných z následujících hodnot: options, timedText, fullscreen
Zákaznická podpora
[[File:Big Buck Bunny 4K.webm|300px|thumb|...]] [[File:example.ogg|thumb|...]] [[File:example.ogg|30px]] [[File:example.ogg]]
Přehrávač funguje na většině moderních prohlížečů (viz podporovaná matice MediaWiki). Podpora mobilních zařízení je neúplná, zejména na iOS.
TimedMediaHandler obsahuje vložku JavaScriptu pro audio/video Ogg, který funguje v prohlížečích Safari, Internet Explorer 10/11 a Microsoft Edge.
Uživatelé MediaWiki třetích stran mohou také chtít ručně povolit podporu MP4 H.264/AAC pro nativní přehrávání videa a zvuku v Safari/IE/Edge, ale při použití těchto formátů můžete potřebovat patentovou licenci od MPEG-LA pro internetové vysílání.
Instalace
Budete potřebovat novější verzi ffmpeg, abyste mohli podporovat kódování do WebM (s nejnovější verzí VP9).
- Stáhněte soubor/y a vložte je do adresáře pojmenovaného
TimedMediaHandler
ve vaší složceextensions/
.
Vývojáři a přispěvatelé kódu by si místo toho měli nainstalovat rozšíření from Git pomocí:cdextensions/ gitclonehttps://gerrit.wikimedia.org/r/mediawiki/extensions/TimedMediaHandler
- Při instalaci z Gitu spusťte Composer pro instalaci závislostí PHP zadáním
composer install --no-dev
v adresáři rozšíření. (Vyskytnou-li se nějaké komplikace, podívejte se na T173141.) - Na konec vašeho souboru LocalSettings.php přidejte následující kód:
wfLoadExtension( 'TimedMediaHandler' ); $wgFFmpegLocation = '/usr/bin/ffmpeg'; // Nejběžnější cesta k souboru ffmpeg v Linuxu
- Spusťte aktualizační skript , který automaticky provede všechny nezbytné databázové změny, jaké rozšíření vyžaduje.
- Vyžaduje nastavení v konfiguračním souboru.
- Možná budete muset zvýšit povolenou paměť v $wgMaxShellMemory .
- Yes Dokončeno – Přejděte na stránku Special:Version vaší wiki a zkontrolujte, zda bylo rozšíření úspěšně nainstalováno.
Rozšíření automaticky přidá podporované typy souborů (kromě mp4) do adresáře $wgFileExtensions , takže nemusíte ručně přidávat typy video souborů.
Takže po instalaci přejděte do adresáře obsahujícího příponu, např. "../extensions/TimedMediaHandler/" a spusťte composer install --no-dev
, nebo při aktualizaci: composer update --no-dev
.
Alternativně, a nejlépe, přidejte řádek extensions/TimedMediaHandler/composer.json
do souboru composer.local.json
v kořenovém adresáři vaší wiki, např.
{ "extra":{ "merge-plugin":{ "include":[ "extensions/TimedMediaHandler/composer.json" ] } } }
Porovnání možností kódování médií na Wikipedii
Od roku 2018 používají weby Wikimedie VP9.
Seřazeno podle úrovně šířky pásma:
Bitrate (bitový tok) | Mbit/s | WebM VP8 | WebM VP9 |
---|---|---|---|
Super Low (super nízký) | 0.08 | 160p | |
Very Low (velmi nízký) | 0.16 | 160p | 240p |
Low (nízký) | 0.25 | 240p | 360p |
Moderate (mírný) | 0.5 | 360p | 480p |
Medium (středně obtížný) | 1.0 | 480p | 720p |
High (vysoký) | 2.0 | 720p | 1080p |
Very high (velmi vysoký) | 4.0 | 1080p | 1440p |
Super high (super vysoký) | 8.0 | 2160p |
Podrobné možnosti:
Název | 160P | 240P | 360P | 480P | 720P | 1080P | 160P | 240P | 360P | 480P | 720P | 1080P | 1440P | 2160P | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Kontejner | WebM | ||||||||||||||
Video | Kódování | VP8 | VP9 | ||||||||||||
Maximální šířka (pixely) | 288 | 426 | 640 | 854 | 1280 | 1920 | 288 | 426 | 640 | 854 | 1280 | 1920 | 2560 | 4096 | |
Maximální výška (pixely) | 160 | 240 | 360 | 480 | 720 | 1080 | 160 | 240 | 360 | 480 | 720 | 1080 | 1440 | 2160 | |
Bitový tok (Mbit/s) | 0.16 | 0.25 | 0.5 | 1.0 | 2.0 | 4.0 | 0.08 | 0.16 | 0.25 | 0.5 | 1.0 | 2.0 | 4.0 | 8.0 | |
Audio | Kódování | Vorbis | Opus | ||||||||||||
Kanály | 2 (stereo) | (průchozí) | |||||||||||||
Vzorkovací frekvence (Hz) | 44100 | 48000 | |||||||||||||
Kvalita | - | 1 | 2 | 3 | - | (výchozí) |
Nastavení
Zde jsou některé konfigurační proměnné, které by mohly být užitečné:
// Minimální velikost pro vložený videopřehrávač (menší velikost používá vyskakovací přehrávač). $wgMinimumVideoPlayerSize = 200; // Pokud je pro tuto wiki povoleno překódování (pokud je zakázáno, nebudou přidány žádné úlohy překódování a nezobrazí se stav překódování). // Note: if remote embedding an asset, we will still check if the remote repo has transcoding enabled and associated flavors for that media embed. $wgEnableTranscode = true; // Vyloučit úlohy překódování z výchozího spouštěče úloh, protože jejich dokončení trvá velmi dlouho. $wgJobTypesExcludedFromDefaultQueue[] = 'webVideoTranscode'; $wgJobTypesExcludedFromDefaultQueue[] = 'webVideoTranscodePrioritized'; // Celková doba, kterou může příkaz shellu pro překódování trvat: $wgTranscodeBackgroundTimeLimit = 3600 * 8; // Maximální množství virtuální paměti dostupné pro procesy překódování v KB $wgTranscodeBackgroundMemoryLimit = 2 * 1024 * 1024; // 2 GB zdrojů avconv, ffmpeg2theora mmap, takže virtuální paměť musí být dostatečně velká // Maximální velikost souboru, kterou mohou procesy překódování vytvořit, v KB $wgTranscodeBackgroundSizeLimit = 3 * 1024 * 1024; // 3GB // Počet vláken, které se mají v avconv použít pro překódování $wgFFmpegThreads = 1; // The NS for TimedText (registered on MediaWiki.org) // https://www.mediawiki.org/wiki/Extension_namespace_registration // Note commons pre-dates TimedMediaHandler and should set $wgTimedTextNS = 102 in LocalSettings.php $wgTimedTextNS = 710; // Set TimedText namespace for ForeignDBViaLBRepo on a per wikiID basis // $wgTimedTextForeignNamespaces = [ 'commonswiki' => 102 ]; $wgTimedTextForeignNamespaces = []; /** * Výchozí povolené překódování * * -Pokud je nastaveno na prázdné pole, nebudou vytvořeny žádné derivace. * -Nastavení kódování derivačních klíčů je definováno v WebVideoTranscode.php. * * -Tyto transkódy jsou *navíc* ke zdrojovému souboru. * -Budou vytvořeny pouze deriváty s menší šířkou než je velikost zdrojového aktiva. * -Bez ohledu na velikost zdroje bude z adresáře $wgEnabledTranscodeSet vytvořen alespoň jeden zdroj WebM a Ogg. * -Odvozené úlohy se přidávají do fronty úloh MediaWiki při prvním nahrání datového zdroje. * -Derivát by měl být uveden od min do max */ // Počínaje 1.31 // Všechny platné řetězcové hodnoty jsou uvedeny v souboru rozšíření extension.json. $wgEnabledTranscodeSet = [ '160p.webm' => true, '240p.webm' => true, '360p.webm' => true, '480p.webm' => true, '720p.webm' => true, '1080p.webm' => true, ]; $wgEnabledAudioTranscodeSet = [ 'ogg' => true, // ogg+vorbis 'opus' => false, // ogg+opus 'mp3' => true, // raw mp3 'm4a' => false, // mp4+aac (mp4a.40.5) ]; // Pokud lze angažovat zdrojové soubory mp3: $wgTmhEnableMp3Uploads = true; // Pokud lze angažovat zdrojové soubory mp4: $wgTmhEnableMp4Uploads = false; // If you use ffmpeg 2, it can be set to true $wgUseFFmpeg2 = false;
Pro překódování se ujistěte, že máte dostatečně velké hodnoty $wgMaxShellMemory
, $wgMaxShellTime
a $wgMaxShellFileSize
, aby bylo možné spustit úlohy kódování a uložit výstup. Výchozí hodnoty jsou s největší pravděpodobností příliš nízké.
Spouštění úloh překódování
Protože úlohy překódování jsou náročné na zdroje, neměly by být spouštěny jako součást běžné fronty úloh (viz TT29336).
Nastavit Localsettings.php
pomocí:
$wgJobTypesExcludedFromDefaultQueue[] = 'webVideoTranscode'; $wgJobTypesExcludedFromDefaultQueue[] = 'webVideoTranscodePrioritized';
Setup dedicated jobrunners and request running the jobs by the --type
argument:
php./maintenance/run.phprunJobs--typewebVideoTranscode php./maintenance/run.phprunJobs--typewebVideoTranscodePrioritized
Je velmi důležité spouštět tyto úlohy jako uživatel webového serveru.
Jedna úloha překódování videa může snadno trvat hodinu nebo i déle, proto se ujistěte, že příkazy mají dostatek času a výkonu CPU ke spuštění.
Kódování uzlů
Pro překódování velkého množství videí můžete chtít spustit více kódovacích uzlů, které se připojují k hlavní databázi a přímo přistupují k úložišti souborů. Budete muset nainstalovat ffmpeg.
Minimální instalace v Debianu a Ubuntu
aptinstallffmpeg
Navíc k vašemu LocalSettings.php přidejte toto (testováno pouze pro Devuan ASCII (Archived 2018年09月23日 at the Wayback Machine)):
$wgFFmpegLocation = '/usr/bin/ffmpeg';
Izolace shellboxu
Z bezpečnostních důvodů běží ffmpeg v izolovaném kontejneru s využitím Shellboxu na Wikimedii.
Pokud chcete emulovat nastavení Wikimedie, včetně verze pro Debian, závislostí atd., budete potřebovat jejich obraz Dockeru.
Pro konfiguraci MediaWiki pro využití vašich uzlů Shellbox použijte $wgShellboxUrls
.
Samozřejmě si také můžete vytvořit vlastní obraz Dockeru.
$ dockerpulldocker-registry.wikimedia.org/wikimedia/mediawiki-libs-shellbox:video
Řešení problémů
Upozorňujeme, že verze TimedMediaHandler před MediaWiki 1.38 nefungovaly s PostgreSQL. Podívejte se na stránku T157424.
ffmpeg
– nepodařilo se namapovat segment ze sdíleného objektu- Musíte zvýšit povolenou paměť v $wgMaxShellMemory .
- Třída 'getID3' nenalezena
- Je nutné nainstalovat závislosti rozšíření v PHP pomocí Composeru. Viz sekce instalace.
- Nerozpoznaná možnost 'max_muxing_queue_size'
- Možná používáte ffmpeg 2. K vašemu
LocalSettings.php
musíte přidat$wgUseFFmpeg2 = true;
. - Nerozpoznaná možnost 'max_muxing_queue_size'
- Možná používáte ffmpeg 2. K vašemu
LocalSettings.php
musíte přidat$wgUseFFmpeg2 = true;
. - [exception] [...] /index.php?title=Special:Upload Error: Call to undefined method FSFile::getLocalRefPath()
- Toto rozšíření je nekompatibilní s Rozšíření:EmbedVideo . Odinstalujte ho. Možná se také budete muset ujistit, že jste správně provedli kroky na composeru.
Související odkazy
- Stable extensions/cs
- Media handling extensions/cs
- API extensions/cs
- GPL licensed extensions/cs
- Extensions in Wikimedia version control/cs
- ArticleContentOnDiff extensions/cs
- ArticleFromTitle extensions/cs
- ArticlePurge extensions/cs
- BeforePageDisplay extensions/cs
- CanonicalNamespaces extensions/cs
- FileDeleteComplete extensions/cs
- FileUndeleteComplete extensions/cs
- FileUpload extensions/cs
- ImageOpenShowImageInlineBefore extensions/cs
- ImagePageAfterImageLinks extensions/cs
- ImagePageFileHistoryLine extensions/cs
- LoadExtensionSchemaUpdates extensions/cs
- MediaWikiPerformAction extensions/cs
- PageDeleteComplete extensions/cs
- PageMoveComplete extensions/cs
- PageSaveComplete extensions/cs
- ParserTestGlobals extensions/cs
- SkinTemplateNavigation::Universal extensions/cs
- TitleMove extensions/cs
- WgQueryPages extensions/cs
- All extensions/cs
- Extensions requiring Composer with git/cs
- Outdated pages/cs
- Extensions used on Wikimedia/cs
- Extensions included in Canasta/cs
- Extensions included in Fandom/cs
- Extensions included in Miraheze/cs
- Extensions included in wiki.gg/cs
- Extensions included in WikiForge/cs
- Video player extensions/cs
- Audio player extensions/cs