dadv: (Default)
[personal profile] dadv

Firefox 3.5 под FreeBSD по умолчанию не воспроизводит потоковое видео с веба, ссылки на которое имеют вид типа mms://hostname/file или rstpt://hostname/file. Но к нему можно прикрутить и воспроизведение посредством внешнего плеера и сохранение записей. На примере протокола mms:// и проигрывателя mplayer, который понимает URL такого типа.

1. Создадим два простеньких shell-скрипта, один для воспроизведения, другой для сохранения файлов.
Первый, по имени mms-player, просто проигрывает файл с нужными опциями (в этом примере без опций):

#!/bin/sh
/usr/local/bin/mplayer "$1"

Второй, по имени mms-saver, сохраняет видео в подкаталог Downloads домашнего каталога:

#!/bin/sh

dir="$HOME/Downloads"
mkdir -p $dir
[ -d $dir ] || exit 1
fname=`basename "$1"`

xterm -T "Downloading $1" -e sh -c "
  /usr/local/bin/mplayer -dumpstream '$1' -dumpfile '$dir/$fname'
  read wait"

2. Самая большая проблема в том, что в Firefox 3.5 нет интерфейса для создания новой схемы mms:// (многочисленные рецепты на вебе касательно страницы about:config и настроек network.protocol-handlers.* не работают для 3.5). Поэтому первоначальная регистрация схемы выполняется вручную:
  • закрываем Firefox
  • любым файловым менеджером или просто в шелле переходим в каталог $HOME/.mozilla/firefox, там находим каталог профиля с именем типа gg0lbizh.default, а в нём файл mimeTypes.rdf, который открываем любым текстовым редактором.
  • ищем в нём строку about="urn:schemes:root", она там в одном месте. Нас интересует такой кусок файла:
      <RDF:Seq RDF:about="urn:schemes:root">
        <RDF:li RDF:resource="urn:scheme:mailto"/>
        <RDF:li RDF:resource="urn:scheme:irc"/>
        <RDF:li RDF:resource="urn:scheme:ircs"/>
        <RDF:li RDF:resource="urn:scheme:webcal"/>
        <RDF:li RDF:resource="urn:scheme:file"/>
      </RDF:Seq>
    
    добавляем в этот список строку <RDF:li RDF:resource="urn:scheme:mms"/>

  • непосредственно перед этим куском вставляем такую строку:
    <RDF:Description RDF:about="urn:scheme:mms" NC:value="mms"/>

    В итоге получаем в этом месте файла:
      <RDF:Description RDF:about="urn:scheme:mms" NC:value="mms"/>
      <RDF:Seq RDF:about="urn:schemes:root">
        <RDF:li RDF:resource="urn:scheme:mailto"/>
        <RDF:li RDF:resource="urn:scheme:irc"/>
        <RDF:li RDF:resource="urn:scheme:ircs"/>
        <RDF:li RDF:resource="urn:scheme:webcal"/>
        <RDF:li RDF:resource="urn:scheme:file"/>
        <RDF:li RDF:resource="urn:scheme:mms"/>
      </RDF:Seq>
    

  • сохраняем файл, закрываем его и запускаем Firefox
  • идём в меню Edit/Preferences/Applications и в списке наблюдаем строчку с mms в столбце Content type. В столбце Action выбираем Use other..., указываем там путь к нашему скрипту mms-player, затем ещё раз выбираем Use other... и указываем путь к mms-saver, в третий раз выбираем там Always ask.

Всё. Теперь при клике на адрес типа mms://hostname/file браузер спрашивает, что мы хотим - проиграть или сохранить файл.

This account has disabled anonymous posting.
(will be screened if not validated)
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org

Profile

dadv: (Default)
Choose your future

July 2024

M T W T F S S
12 34567
891011121314
15161718192021
22232425262728
293031    

Tags

Style Credit

Powered by Dreamwidth Studios