Ҷустуҷӯи ҳаштсолаи ман барои рақамӣ кардани 45 видеокассета. Қисми 2

Дар қисми аввал ҷустуҷӯи душвор барои рақамӣ кардани видеоҳои кӯҳнаи оилавӣ ва тақсим кардани онҳо ба саҳнаҳои алоҳида тасвир шудааст. Пас аз коркарди ҳама клипҳо ман мехостам тамошои онҳоро дар интернет ба мисли YouTube қулай ташкил кунам. Азбаски инҳо хотираҳои шахсии оилавӣ мебошанд, онҳоро дар худи YouTube ҷойгир кардан мумкин нест. Мо ба хостинги хусусӣ ниёз дорем, ки ҳам қулай ва ҳам бехатар бошад.

Қадами 3. Интишор

ClipBucket, як клони кушодаи YouTube, ки шумо метавонед дар сервери худ насб кунед

Пеш аз ҳама ман кӯшиш кардам ClipBucket, ки худро як клони кушодаи YouTube меноманд, ки шумо метавонед дар сервери худ насб кунед.

Ҷустуҷӯи ҳаштсолаи ман барои рақамӣ кардани 45 видеокассета. Қисми 2

Тааҷҷубовар аст, ки ClipBucket ягон дастури насбкунӣ надорад. Ташаккур ба идоракунии беруна я процесси васлкунй автоматй кунонда шуд бо кӯмаки Фаҳмост, воситаи идоракунии конфигуратсияи сервер.

Як қисми мушкилот ин буд, ки скриптҳои насби ClipBucket комилан шикаста буданд. Дар он вакт И дар Google кор кардааст ва тибқи шартҳои шартнома ҳақ надоштанд, ки дар клони сарчашмаи кушодаи YouTube саҳм гузоранд, аммо И гузориши хатогиро нашр кардки аз он ислоххои зарурй даровардан осон буд. Моххо мегузаштанд ва онхо хануз нафахмиданд, ки мушкили чист. Ба ҷои ин, онҳо ҳама чизро илова карданд бештар аз хатогиҳо дар ҳар як нашрия.

ClipBucket дар як модели машваратӣ кор мекард - онҳо рамзи худро ройгон бароварданд ва барои кӯмак барои ҷойгиркунӣ пул гирифтанд. Оҳиста-оҳиста ба ман фаҳмидам, ки ширкате, ки аз дастгирии пулакӣ пул кор мекунад, эҳтимол ба он қадар манфиатдор нест, ки муштариён худашон маҳсулот насб кунанд.

MediaGoblin, алтернативаи муосиртар

Пас аз чанд моҳи ноумедӣ аз ClipBucket, ман имконоти дастрасро дида баромадам ва ёфтам гоблини ВАО.

Ҷустуҷӯи ҳаштсолаи ман барои рақамӣ кардани 45 видеокассета. Қисми 2
гоблини ВАО платформаи мустақили мубодилаи ВАО мебошад

MediaGoblin дорои чизҳои зиёде аст. Баръакси ClipBucket дар PHP-и зебо, MediaGoblin дар Python навишта шудааст, забоне, ки ман дар навиштани код бо он таҷрибаи зиёд дорам. Бихӯред интерфейси сатри фармон, ки он автоматикунонии зеркашии видеоро осон мекунад. Муҳимтар аз ҳама, MediaGoblin ворид мешавад Тасвири Docker, ки ҳама гуна мушкилотро бо насб бартараф мекунад.

Доктор технологияест, ки барои барномае, ки дар ҳама ҷо кор мекунад, муҳити мустақил эҷод мекунад. Ман дар Docker истифода мекунам бисёр лоиҳаҳои ман.

Мушкилоти ҳайратангези азнавсозӣ кардани MediaGoblin

Ман гумон мекардам, ки ҷойгиркунии тасвири докери MediaGoblin як кори ночиз хоҳад буд. Бале, ин тавр нашуд.

Тасвири тайёр ду вазифаи заруриро надошт:

  • Сертификатсия
    • MediaGoblin ба таври нобаёнӣ портали ВАО-и оммавиро эҷод мекунад ва ба ман як роҳи маҳдуд кардани дастрасии бегонагон лозим буд.
  • Transcoding
    • Ҳар дафъае, ки шумо видео бор мекунед, MediaGoblin кӯшиш мекунад, ки онро барои ҷараёнҳои оптималӣ дубора рамзгузорӣ кунад. Агар видео аслан барои ҷараён омода бошад, транскодкунӣ сифатро паст мекунад.
    • MediaGoblin пешниҳод мекунад ғайрифаъол кардани рамзгузорӣ тавассути имконоти конфигуратсия, аммо ин корро дар тасвири мавҷудаи Docker иҷро кардан ғайриимкон аст.

Хуб, ҳеҷ мушкиле нест. Тасвири Docker бо он меояд манбаи кушода, Пас шумо метавонед онро худатон аз нав созед.

Мутаассифона, тасвири Docker дигар аз ҷорӣ сохта нашудааст Анбори MediaGoblin. Ман кӯшиш кардам, ки онро бо версияи охирини бомуваффақият ҳамоҳанг созам, аммо ин ҳам кор накард. Гарчанде ки ман маҳз ҳамон кодро истифода кардам, вобастагии берунии MediaGoblin тағир ёфта, сохтмонро вайрон кард. Пас аз даҳҳо соат, ман раванди сохтани 10-15 дақиқаи MediaGoblin-ро такрор ба такрор иҷро кардам, то он даме ки он ниҳоят кор кард.

Пас аз чанд мох хамин ходиса руй дод. Дар маҷмӯъ, дар тӯли ду соли охир, занҷири вобастагии MediaGoblin чанд маротиба сохти маро шикаст ва бори охир ин танҳо вақте буд, ки ман ин мақоларо навишта будам. Ман ба интишор хотима додам фардкунандаи худ аз MediaGoblin c вобастагии сахт рамзӣ ва версияҳои возеҳи китобхона. Ба ибораи дигар, ба ҷои даъвои шубҳанок, ки MediaGoblin бо ҳама гуна версия кор мекунад карафс >= 3.0, ман вобастагии мушаххасро аз версия насб кардам карафс 4.2.1, зеро ман MediaGoblin-ро бо ин версия санҷидам. Чунин ба назар мерасад, ки маҳсулот ниёз дорад механизми сохтани такроршавандавале ман то хол ин корро накардаам.

Ба ҳар ҳол, пас аз чанд соати мубориза, ман ниҳоят тавонистам MediaGoblin-ро дар тасвири Docker созам ва танзим кунам. Ин аллакай осон буд транскодкунии нолозимро гузаред и Nginx -ро барои аутентификатсия насб кунед.

Қадами 4. Хостинг

Азбаски MediaGoblin Docker-ро дар мошини маҳаллии ман иҷро мекард, қадами навбатӣ ҷойгир кардани сервери абрӣ буд, то оила видеоро тамошо кунад.

MediaGoblin ва мушкилоти нигаҳдории видео

Платформаҳои зиёде мавҷуданд, ки тасвири Docker-ро мегиранд ва онро дар URL-и умумӣ ҷойгир мекунанд. Ҷолиб он аст, ки ба ғайр аз худи барнома, файлҳои видеоии 33 ГБ бояд интишор карда шаванд. Онҳоро ба тасвири докер рамзгузорӣ кардан мумкин буд, аммо он душвор ва зишти буд. Тағир додани як сатри конфигуратсия дубора ҷойгиркунии 33 ГБ маълумотро талаб мекунад.

Вақте ки ман ClipBucket-ро истифода кардам, ман мушкилотро бо он ҳал кардам gcsfuse - утилитае, ки ба системаи оператсионӣ имкон медиҳад, ки директорияҳоро ба анбори абрии Google Cloud ҳамчун роҳҳои муқаррарии системаи файлӣ бор кунад. Ман файлҳои видеоиро дар Google Cloud ҷойгир кардам ва gcsfuse-ро барои нишон додани онҳо ҳамчун файлҳои маҳаллӣ дар ClipBucket истифода кардам.

Фарқият дар он буд, ки ClipBucket дар як мошини воқеии виртуалӣ кор мекард, дар ҳоле ки MediaGoblin дар контейнери Docker кор мекард. Дар ин ҷо насб кардани файлҳо аз анбори абр хеле мушкилтар шуд. Ман даҳҳо соатро барои ҳалли ҳама мушкилот сарф кардам ва дар ин бора навиштам тамоми пости блог.

Ҷустуҷӯи ҳаштсолаи ман барои рақамӣ кардани 45 видеокассета. Қисми 2
Интегратсияи ибтидоии MediaGoblin бо нигоҳдории Google Cloud, ки I соли 2018 гуфта шудааст

Пас аз чанд ҳафтаи танзими ҳамаи ҷузъҳо, ҳама чиз кор кард. Бе ворид кардани ягон тағирот ба рамзи MediaGoblin, ман фиреб медиҳам, ки онро барои хондан ва навиштани файлҳои медиавӣ дар анбори абрии Google бигирам.

Ягона мушкилӣ дар он буд, ки MediaGoblin оҳиста-оҳиста ба кор шурӯъ кард. Барои бор кардани тасвирҳои видеоӣ ба саҳифаи асосӣ 20 сонияи зиёд лозим шуд. Агар шумо ҳангоми тамошои видео ба пеш ҷаҳед, MediaGoblin пеш аз идомаи навозиш 10 сонияи беохир таваққуф кард.

Мушкилоти асосӣ дар он буд, ки видеоҳо ва тасвирҳо ба таври тӯлонӣ ва гардиш ба корбар мерафтанд. Онҳо бояд аз анбори абрии Google тавассути gcsfuse ба MediaGoblin, Nginx рафтанд - ва танҳо пас аз он онҳо ба браузери корбар ворид шуданд. Мушкилоти асосӣ gcsfuse буд, ки барои иҷрои зуд оптимизатсия карда нашудааст. Таҳиягарон дар бораи таъхирҳои зиёди хидматрасонӣ дар саҳифаи асосии лоиҳа ҳушдор медиҳанд:

Ҷустуҷӯи ҳаштсолаи ман барои рақамӣ кардани 45 видеокассета. Қисми 2
Тафсилотро таҳрир кунед дар бораи кори суст дар ҳуҷҷатҳои gcsfuse

Идеалӣ, браузер бояд файлҳоро мустақиман аз Google Cloud кашад ва ҳамаи қабатҳои фосилавиро фаро гирад. Чӣ тавр ман инро бидуни ворид шудан ба пойгоҳи коди MediaGoblin ва илова кардани мантиқи мураккаби ҳамгироии Google Cloud иҷро кунам?

ҳиллаи sub_filter дар nginx

Хушбахтона ман роҳи ҳалли осонро ёфтам як каме зишт. Ман ба конфигуратсияи default.conf дар Nginx илова кардам чунин филтр:

sub_filter "/mgoblin_media/media_entries/" "https://storage.googleapis.com/MY-GCS-BUCKET/media_entries/";
sub_filter_once off;

Дар танзимоти ман, Nginx ҳамчун прокси байни MediaGoblin ва корбари ниҳоӣ амал кард. Дастури дар боло зикршуда ба Nginx мегӯяд, ки пеш аз ба корбари ниҳоӣ расонидани онҳо ҳама ҷавобҳои HTML-и MediaGoblin-ро ҷустуҷӯ ва иваз кунад. Nginx ҳама роҳҳои нисбиро ба файлҳои медиавии MediaGoblin бо URL-ҳо аз нигоҳдории абрии Google иваз мекунад.

Масалан, MediaGoblin ин HTML-ро тавлид мекунад:

<video width="720" height="480" controls autoplay>
  <source
    src="/mgoblin_media/media_entries/16/Michael-riding-a-bike.mp4"
    type="video/mp4">
</video>

Nginx вокунишро тағир медиҳад:

<video width="720" height="480" controls autoplay>
  <source
    src="https://storage.googleapis.com/MY-GCS-BUCKET/media_entries/16/Michael-riding-a-bike.mp4"
    type="video/mp4">
</video>

Ҳоло ҳама чиз тавре кор мекунад, ки бояд бошад:

Ҷустуҷӯи ҳаштсолаи ман барои рақамӣ кардани 45 видеокассета. Қисми 2
Nginx посухҳоро аз MediaGoblin аз нав менависад, то муштариён метавонанд файлҳои медиаро мустақиман аз анбори абрии Google дархост кунанд

Беҳтарин қисми ҳалли ман дар он аст, ки он ягон тағиротро ба рамзи MediaGoblin талаб намекунад. Дастури ду сатри Nginx MediaGoblin ва Google Cloud-ро бефосила муттаҳид мекунад, гарчанде ки ин ду хидмат дар бораи ҳамдигар чизе намедонанд.

эрод гирифтан: Ин ҳалли файлҳо дар Google Cloud Storage талаб мекунад, ки барои ҳама хонда шаванд. Барои кам кардани хатари дастрасии беиҷозат, ман як сатили дарози тасодуфиро истифода мебарам (масалан, mediagoblin-39dpduhfz1wstbprmyk5ak29) ва санҷед, ки сиёсати назорати дастрасии сатил ба корбарони беиҷозат имкон намедиҳад, ки мундариҷаи директорияро намоиш диҳанд.

Маҳсулоти ниҳоӣ

Дар ин лаҳза ман як ҳалли пурраи корӣ доштам. MediaGoblin бо хушнудӣ дар контейнери худ дар Google Cloud Platform кор мекард, аз ин рӯ ба зуд-зуд часпондан ё навсозӣ кардан лозим набуд. Ҳама чиз дар раванди ман автоматӣ ва такроршаванда буд, ки имкон медиҳад таҳрирҳои оддӣ ё бозгашт ба версияҳои қаблӣ.

Ба оилаи ман хеле писанд омад, ки тамошои видео то чӣ андоза осон аст. Бо ёрии хаки Nginx, ки дар боло тавсиф шудааст, кор бо видео мисли YouTube босуръат шуд.

Экрани намоиш чунин менамояд:

Ҷустуҷӯи ҳаштсолаи ман барои рақамӣ кардани 45 видеокассета. Қисми 2
Мундариҷаи феҳристи видеоҳои оилавӣ аз рӯи теги "Беҳтарин"

Ангуштзании тасвири ангора экрани зеринро меорад:

Ҷустуҷӯи ҳаштсолаи ман барои рақамӣ кардани 45 видеокассета. Қисми 2
Намоиши клипи инфиродӣ дар сервери медиа

Пас аз солҳои зиёди кор, ман бениҳоят хушҳол шудам, ки ба хешовандон имкони тамошои видеоҳои моро дар ҳамон интерфейси мувофиқе, ки дар YouTube, ки дар аввал мехостам, тамошо кунанд.

Бонус: Паст кардани хароҷот то камтар аз $1 дар як моҳ

Шумо видеоҳои хонагиро кам-кам, танҳо ҳар чанд моҳ тамошо мекунед. Оилаи ман дар як сол тақрибан 20 соат трафик тавлид мекард, аммо сервер 15/99,7 кор мекард. Ман барои сервере, ки XNUMX% вақт паст буд, ҳар моҳ $XNUMX пардохт мекардам.

Дар охири соли 2018, Google маҳсулоте баровард Cloud Run. Хусусияти қотил контейнерҳои Docker-ро чунон зуд иҷро мекард, ки барнома метавонад ба дархостҳои HTTP посух диҳад. Яъне сервер метавонад дар ҳолати интизорӣ бимонад ва танҳо вақте оғоз кунад, ки касе мехоҳад ба он равад. Барои барномаҳои кам истифодашаванда, ба монанди ман, хароҷот аз 15 доллар дар як моҳ то чанд сент дар як сол расидааст.

Бо сабабҳое, ки ман дар ёд надорам, Cloud Run бо тасвири ман MediaGoblin кор намекард. Аммо бо пайдоиши Cloud Run, ман инро ба ёд овардам Heroku хидмати шабеҳро ройгон пешкаш мекунад ва асбобҳои онҳо нисбат ба Google хеле қулайтаранд.

Бо сервери ройгони барнома, ягона хароҷот нигоҳдории маълумот аст. Андозаи стандартии минтақавии Google 2,3 сент/ГБ арзиш дорад. Архиви видео 33 ГБ аст, аз ин рӯ ман танҳо 77 сент дар як моҳ пардохт мекунам.

Ҷустуҷӯи ҳаштсолаи ман барои рақамӣ кардани 45 видеокассета. Қисми 2
Ин қарор дар як моҳ танҳо $0,77 арзиш дорад

Маслиҳатҳо барои онҳое, ки кӯшиш мекунанд

Аён аст, ки ин раванд маро хеле тӯл кашид. Аммо ман умедворам, ки ин мақола ба шумо дар сарфа кардани 80-90% кӯшишҳои рақамикунонии видео ва нашри хонаатон кӯмак мекунад. Дар фасли алоҳида шумо метавонед пайдо кунед қадам ба қадам дастури муфассал дар тамоми раванд, аммо дар ин ҷо баъзе маслиҳатҳои умумӣ ҳастанд:

  • Дар марҳилаи рақамӣ ва таҳрир то ҳадди имкон метамаълумотро захира кунед.
    • Маълумоти арзишманд аксар вақт дар тамғакоғазҳои кассетаи видео сабт карда мешавад.
    • Сабт кунед, ки кадом клип аз кадом кассета ва бо кадом тартиб гирифта шудааст.
    • Санаи тирандозиро нависед, ки он метавонад дар видео нишон дода шавад.
  • Пардохти хидматҳои касбии рақамиро баррасӣ кунед.
    • Хоҳиши шумо хеле зиёд аз чихати сифатн рацамикунонй ба онхо баробар кардан душвор ва гарон аст.
    • Аммо аз ширкате бо номи EverPresent дур монед (агар ба шумо тафсилоти бештар лозим бошад, ба ман хабар диҳед).
  • Агар шумо рақамикунониро худатон анҷом диҳед, HDD харед.
    • Видеои таърифи стандартии фишурнашуда дар як дақиқа 100-200 МБ мегирад.
    • Ман ҳама чизро дар худ нигоҳ доштам Synology DS412 + (10 ТБ).
  • Метамаълумотро дар баъзе форматҳои умумӣ нависед, ки ба як барномаи мушаххас алоқаманд нест.
    • Тавсифи клип, рамзҳои вақт, санаҳо ва ғайра.
    • Агар шумо метамаълумотро дар формати махсуси барнома захира кунед (ё бадтараш, умуман захира накунед), агар шумо қарор қабул кунед, ки ҳалли дигарро истифода баред, шумо корро дубора иҷро карда наметавонед.
    • Ҳангоми таҳрир шумо дар видео бисёр метамаълумоти муфидро мебинед. Шумо онҳоро аз даст медиҳед, агар шумо онҳоро наҷот надиҳед.
      • Дар видео чӣ ҳодиса рӯй медиҳад?
      • Дар он ҷо кӣ ба қайд гирифта шудааст?
      • Кай сабт шудааст?
  • Видеоҳои дӯстдоштаи худро қайд кунед.
    • Рости гап, аксари мундариҷаи видеоии хонагӣ хеле дилгиркунанда аст.
    • Ман теги "беҳтарин" -ро ба клипҳои дӯстдоштаам татбиқ мекунам ва вақте ки ман мехоҳам видеоҳои хандоварро тамошо кунам, онҳоро мекушоям.
  • Ҳарчи зудтар ҳалли ҳамаҷониба ташкил кунед, то ин раванд фавран аз аввал то ба охир гузарад.
    • Ман кӯшиш кардам, ки аввал ҳама кассетаҳоро рақамӣ кунам, баъд ҳама кассетаҳоро таҳрир кунам ва ғайра.
    • Афсӯс, ки ман бо як кассета оғоз накардаам ва тамоми корҳоро бо он иҷро накардаам. Он гоҳ ман фаҳмидам, ки кадом қарорҳо ва дар кадом марҳила ба натиҷаи ниҳоӣ таъсир мерасонанд.
  • Кам кардани рамзгузорӣ.
    • Ҳар дафъае, ки шумо клипро таҳрир мекунед ё дубора рамзгузорӣ мекунед, сифати онро паст мекунед.
    • Наворҳои хомро бо сифати ҳадди аксар рақамӣ кунед, пас ҳар як клипро маҳз як маротиба ба формате, ки браузерҳо дар асл бозӣ мекунанд, табдил диҳед.
  • Барои интишори клипҳои видеоӣ роҳи соддатаринро истифода баред.
    • Ба назар мерасад, ки MediaGoblin як воситаи аз ҳад зиёд мураккаб барои сенарияи хеле оддии тавлиди саҳифаҳои веб бо маҷмӯи статикии файлҳои видеоӣ ба назар мерасад.
    • Агар ман аз нав оғоз кунам, ман як генератори статикии сайтро истифода мебарам, масалан Уго, Ҷекил ё Тоза.
  • Монтаж созед.
    • Таҳрири видео як роҳи шавқоварест барои муттаҳид кардани лаҳзаҳои беҳтарин аз якчанд видео.
    • Дар таҳрир чизи асосӣ мусиқӣ аст. Масалан, мавзӯъ аҷиб аст Барфи суст аз The National, ин кашфи шахсии ман аст.

Манбаъ: will.com