Tamsa'insa 24/7 kan videos gidduutti hin walqabanne: ffmpeg tokko paaypiin sochoofuu

Viidiyoo

Kanaaluun kallattii (live) viidiyoowwan xumuraman sa'aatii 24ffaa guyyaa guyyaan taphatu qindaa'ina salphaa lama qaba; lamaanuu waan tokko darbu. ffmpeg viidiyoo tokkoon tokkoon isaa irra deebi'ee jalqabsiisuun walitti hidhamiinsa RTMP jijjiirama hunda irratti darba. Tarrii concat jalqaba irratti al tokko qofa dubbifama, kanaafuu viidiyoon haaraan jalqabsiisa itti aanu eeggata.

Dizaayinii

Viidiyoo hundi yeroo tokko qofa gara MPEG-TSitti kan jijjiiramu guddina fi saffisa fuula (frame rate) sararichaaf (stream) walsimsee; viidiyoo dhaabbataa (vertical) irraa koppii isaa kan hin ifne (blurred) irratti dhaabbata malee bakka gurgurdaa (black bars) hin qabu. Piroosesii ffmpeg tokko MPEG-TS irraa galmee standard input irraa dubbisa, akkasumas bitrate dhaabbataa (constant bitrate) fi keyframe sekonda lama lamaaf qindeessuun encode godha, akka live ingest eegutti. Feeder xiqqaan qophaa'anii jiran gara pipe sanaatti tokkoon tokkoon isaanii, saffisa yeroo dhugaatiin (real-time pace), yeroo hunda jijjiirama ta'uutti filannoo qajeelfama itti aanu godhuun barreessa: viidiyoowwan yeroo jalqabaaf hin taphatamne jalqaba, erga sana booda kan yeroo dhihoo keessatti hin taphatamne. Dubbisaa MPEG-TS ffmpeg akka qajeelfamni (timestamps) qabxii jalqabaa irraa jalqabu hubata, akkasumas isaan jijjiira, kanaafuu bu'iinsi isaa dhaabbii malee itti fufa.

Detail tokko: sochii jalqabaa irraa

Sagantaa keenya jalqabaa sa'aatii isaa yeroo ffmpeg jalqabametti kaase. Qophii faayilii jalqabaa sekonndii 9 fudhate, kanaafuu feeder-n sekonndii 9 duubatti akka jiru yaadee, kanneen hunda walitti erguuf karoorfate. Sa'aatii kaasee yeroo byte jalqabaa barreessameetti kaasuun rakkicha furuun: hojii sekonndii 53 sekonndii 53 kan stream ta'e uume.

Ibsa lammaffaa: sagalee walitti hidhamiinsa irratti

Jijjiirama tokkotti, sagantaa sagalee faayilii itti aanu gara 17 milliseconds dura sagantaa sagalee faayilii darbe xumuruu eegale. Encoder-n gabaasaa kennaa isaa 'yeroo gara duubatti' adeemsise jedhee akeekkachiise, muxer-n immoo yeroo (timestamp) sirreese. Resampling aresample=async=1:min_hard_comp=0.01:first_pts=0 fayyadamuun walitti bu'iinsa akkanaa encoder-n isaan argatu dura muraa ykn guddisa. Hojii daqiiqaa tokkoo caaluu yeroo tokkotti jijjiiramni shan yoo jiraate, yeroon (timestamp) sagalee fi viidiyoo hunda keessa stream-n fudhatame ol ka'e, stream-nis dogoggora tokko malee decode godhame.

Detail sadii: murtiiwwan muraan ni barbaachisu

Faayiliin tokkoon tokkoon isaa lakkaaʼisa MPEG-TS fi saʼaatii isaa irra deebiʼee jalqabsiisa, kanaafuu ffmpeg yeroo hunda yommuu jijjiiramu "Packet corrupt" fi "timestamp discontinuity" gabaasa. Sararawwan kunniin eegamaadha, akkasumas galmee (log) keessaa baafna, akkasumas dogoggorri dhugaan ifatti mulʼatuuf.

Eegduu

Yoo ffmpeg dhaabbate yookiin adeemsi isaa daqiiqaa tokkoof dhaabbate, oduun sun boqonnaa dabalaa deemuun irra deebi'ee jalqabama, yeroo baay'ee yoo hin milkoofne ergaa erga. Qorannoo keenya keessatti encoderii harkaan ajjeesne; oduun sun sekoondii torba booda irra deebi'ee ture, viidiyoon hojii gidduutti dabalame garuu walqunnamsiisuu haaraa malee marsaa keessatti makame. Irra deebi'ee jalqabuun walqunnamsiisuu gabaabduudha, kanaaf YouTube broadcast ofumaan jalqabuu fi ofumaan dhaabbachuu akka hin qabne godhi. Furtuun oduu (stream key) tarree log hunda keessatti dhokfameera, kan ffmpeg ofii dabalatee. Studio kunniin oduu kallattii (live channel) akka tajaajila systemd tiin dhiheessa.

Haaromfame: