Ffmpeg-ийг ашиглан скринкаст хийх

Мэдэхгүй хүмүүсийн хувьд скринкаст энэ нь заримдаа аудио өгүүлэмж агуулсан компьютерийн дэлгэцийн гаралтын дижитал бичлэг юм.

En Linux, хэд хэд байна хэрэгсэл хийх дэлгэцийн зураг авалт. Гэсэн хэдий ч үүнийг хийхийг илүүд үздэг хүмүүс хамгийн бага нөөцийг ашиглах тэд энэ нийтлэлийг уншихаа зогсоож чадахгүй.


2 хэрэгслийг ашиглан (дэлгэцэн дээр буулгах ffmpeg, бичигдэх цонхны координат, хэмжээсийг олж авахын тулд xwininfo) би хамгийн бага нөөцийг ашиглан оновчтой үр дүнд хүрч скринкаст хийж чадлаа.

Дэлгэцийн бичлэгийг эхлүүлэх скрипт

#! / bin / bash

# Сонгосон цонхны координат ба хэмжээг авна уу
# Үүнд цонхны чимэглэл ороогүй болно.
  xywh-г тохируулах
  eval $ (xwininfo -frame |
    sed -n -e "s / ^ + Зүүн талын туйлын дээд X: + ([0-9] +). * / x = 1 / p"
           -e "s / ^ + Зүүн талын үнэмлэхүй зүүн дээд Y: + ([0-9] +). * / y = 1 / p"
           -e "s / ^ + Өргөн: + ([0-9] +). * / w = 1 / p"
           -e "s / ^ + Өндөр: + ([0-9] +). * / h = 1 / p")
$ w = $ w + $ w% 2 # бол өргөн нь 2-ын үржвэр, тэгэхгүй бол ffmpeg гомдоллодог
WIN_XY = $ x "," $ y # формат XY координат
WIN_GEO = $ w "x" $ h # формат цонхны хэмжээ
# мэдэгдэх-илгээх нь дэлгэцийн эхлэлийг харуулсан мессежийг харуулах болно.
# ffmpeg -ийг өөрийн тохиргоонд тохирсон параметрүүдээр ажиллуулна уу.
мэдэгдэх-илгээх "Эхлэх скринкаст ..." && ffmpeg -f alsa -i hw: 0 -f x11grab -r 25 -s $ WIN_GEO -i: 0.0 + $ WIN_XY -acodec libmp3lame -async 1 -vcodec libx264 -preset ultrafast - crf 0-threads 0 save.mp4

Энэ скриптийн бүх зүйлийг бүрэн гүйцэд ойлгох шаардлагагүй. Тайлбарыг дагахад хангалттай. Гэсэн хэдий ч ffmpeg-ийг гүйцэтгэсэн мөрөнд зарим параметрүүдийг өөрчлөх шаардлагатай бөгөөд тэдгээрийг машиныхаа тохиргоонд тохируулах шаардлагатай болно.

Аудио архитектур

1) Хэрэв та OSS ашигладаг бол -f alsa -i hw: 0 -f -s oss -i / dev / dsp -ээр солино уу.

2) Хэрэв та зөвхөн ALSA ашигладаг бол скриптэд орсон параметрүүдийг ашиглах ёстой (-f alsa -i hw: 0). Hw-ээс хойшхи тоог тодорхойлохын тулд та aplay -l-ийг ажиллуулж тохирох дууны картын дугаарыг сонгож болно.

3) Хэрэв та Pulse Audio ашигладаг бол (Ubuntu ба деривативууд үүнийг ашигладаг), -f alsa -ac 1 -i импульс параметрүүдийг ашиглана уу.

FPS

-r 25 нь таны бүртгүүлэхийг хүсч буй fps (секундэд нэг кадр эсвэл секундэд жааз) байгааг заана. 25 бол сайн сонголт юм.

Аудио, видео, синк кодлогч

-acodec libmp3lame бол аудио кодлогч юм. Би үүнийг mp3 дээр бичихээр сонгосон. Та өөр ямар ч зүйлийг ашиглаж болно.

-async 1 нь аудио бичлэгийг синхрончлох боломжийг олгодог.

-vcodec libx264 -preset ultrafast -crf 0 -reads 0, ffmpeg-д ашиглах видео кодек нь x264, урьдчилсан тохиргоо нь хэт хурдан (хурдан, удаан гэх мэт) байгаа, тэгэхгүй бол энэ нь зөв бичигдэхгүй fps-ийн хүссэн хэмжээ. -Crf 0 параметр нь шахалтын түвшинг заана (шахалт бага байх тусам шахалт багасна). Эцэст нь 0 урсгал нь ашиглах утаснуудын тоог заана, 0 дамжуулахад ffmpeg үүнийг автоматаар тооцдог. Аудио тохиргооны нэгэн адил та бусад сонголтыг сонгож болно.

Эдгээр бүх тохиргоо нь надад хамгийн сайн үр дүнг өгсөн тохиргоонууд байсан: харьцангуй бага хэмжээтэй файл, сайн видео чанар, синхрончлогдсон аудио, хоцрогдолгүй. Гэсэн хэдий ч, би бусдыг олж мэдэхийн тулд ffmpeg баримт бичигт шумбахыг зөвлөж байна.

Дэлгэцийн бичлэгийг дуусгах скрипт

#! / bin / bash
мэдэгдэх-илгээх "Төгсгөлийн скринкаст ..." && killall ffmpeg

Хоёр скрипт ажиллахын тулд та мэдэгдэх-илгээх суулгагдсан байх ёстой. Ubuntu-аас гаралтай бүх түгээлтүүд энэ хэрэгслийг суулгасан байх ёстой. Arch ба деривативуудад: sudo pacman -S libnotify.

ffcast

Скриптийг бичих мэдээлэл хайж байхдаа хэн нэгэн минийхтэй төстэй санаатай байсныг олж мэдэв. Ffcast нь ижил хэрэгслийг ашигладаг скрипт юм (ffmpeg ба xwininfo). Зарим нь энэ скриптийг ашиглах нь илүү тохиромжтой байж магадгүй тул би үүнийг дурдсан.

Arch болон деривативуудад би терминал нээгээд гүйв.

yaourt -S ffcast

Үлдсэн хэсгийг та татаж авах боломжтой энд байна.

Эцсийн…

Та HOME фолдерт хадгалагдсан скриптүүдийг үүсгээд хадгалсны дараа түүнд гүйцэтгэх зөвшөөрөл олгох ёстой. Start_screencast ба finish_screencast гэж нэрлэвэл дараах тушаалуудыг терминал дээр ажиллуулна уу.

chmod + x start_screencast
chmox + x terminate_screencast

Эцэст нь скрипт тус бүрийг өөртөө тохирсон 2 товчлол (товчлол) -д хуваарилах нь л үлдэх болно. Ингэснээр та сонгосон товчлуурын хослолыг дарахад скриптүүд ажиллах болно.


Нийтлэлийн агуулга нь бидний зарчмуудыг баримталдаг редакцийн ёс зүй. Алдааны талаар мэдээлэхийн тулд товшино уу энд байна.

12 сэтгэгдэл, үлдээгээрэй

Сэтгэгдэлээ үлдээгээрэй

Таны и-мэйл хаяг хэвлэгдсэн байх болно.

*

*

  1. Мэдээллийг хариуцах: Мигель Анхель Гатан
  2. Мэдээллийн зорилго: СПАМ-ыг хянах, сэтгэгдлийн менежмент.
  3. Хууль ёсны байдал: Таны зөвшөөрөл
  4. Мэдээллийн харилцаа холбоо: Хуулийн үүргээс бусад тохиолдолд мэдээллийг гуравдагч этгээдэд дамжуулахгүй.
  5. Өгөгдөл хадгалах: Occentus Networks (ЕХ) -с зохион байгуулсан мэдээллийн сан
  6. Эрх: Та хүссэн үедээ мэдээллээ хязгаарлаж, сэргээж, устгаж болно.

  1.   Майкл Сп гэж хэлэв

    Линукстэй танилцсанаас хойш би энэ тайлбар дээр яг л дэлгэрэнгүй бичсэн зүйлийг яг өөрөөсөө асуусан. энэ нь амбицтай төсөл байх болно.

  2.   pmf гэж хэлэв

    Сургалтын зааврыг сайн гэж бодож байна, гэхдээ шинэхэн хэрэглэгчдэд хэрхэн хялбар зүйлийг хэлэх вэ? Надад хамгийн сайхан санагдаж байгаа зүйл бол KAzam, ашиглахад хялбар, миний бодлоор их зүйл хэрэглэдэггүй !!!!!! Баяр хүргэе

  3.   Линукс ашиглая гэж хэлэв

    Бүгд биш. Нэмж дурдахад, миний хүссэн форматтай ажилладаг, цөөн хэдэн нөөцийг ашигладаг скринкаст хийхэд сайн интерфейс байхгүй гэдэгт би итгэж байна.

    Миний хувьд терминал бол хамгийн сайн сонголт юм. Би үүнийг бүх хүмүүст зориулагдсан гэж жүжиглэдэггүй, харин сурч мэдсэн зүйлээ бусадтай хуваалцах нь зөв шүү дээ?

    Баярлалаа! Паул.

  4.   Хорхе Роча гэж хэлэв

    Хэрэв бид OS-г GNU / linux-ийн хүрээнд өргөжүүлэхийг хүсч байгаа бол хэрэглэгчид терминал дээр ийм зүйл хийхийг зөвлөж байна. Хүмүүс хялбар, ажиллагаатай зүйлийг хүсч байгаа нь буруу юм.

    @ingjorgerocha

  5.   юун гэж хэлэв

    Серверийн түвшинд би зөвхөн консол ашигладаг, ямар ч график орчингүй ... энэ бол хамгийн практик зүйл бөгөөд би бүх зүйлийг тэндээс хийдэг (жишээ нь таны сайн ярьдаг шиг нөөцлөлтийг автоматжуулна уу ...), гэхдээ танд байгаа машин дээр сервер ... үүн дээр скринкаст хийхийг та юу хүсч байна вэ? хэхэ .. Ffmpeg нь маш их хүчин төгөлдөр боловч консолын асуудал нь аль тархацаасаа хамаараад ар тал руугаа явах ёстой гэж бодож байна.
    Линуксийн ертөнцөд ийм олон янзын хуваарилалтууд байдаг бөгөөд консол нь бүх нөхцөл байдалд зөв ажиллахад хангалттай төгс байдаг (энэ нь бараг алдаагүй юм ..) тул бид олон нийтэд зориулсан програмуудаа сайжруулж эхлэх хэрэгтэй. өнгөлөх, кодлох, график талаас нь харах ... өнөө үед шаардагдаж байгаа зүйл.
    Бид нэлээд эртний, орхигдсон Линукс төслүүдтэй байдаг, сайн жишээ бол миний хувьд жишээ нь pendrive дээр програм авч, ердөө л хоёр товшоод, энгийн програм хийх боломжийг олгодог файлын формат байхгүй болсон. хадгалах санг шаардахаас гадна суурилуулах (тиймээс сүлжээ) .. APTonCD байхгүй, энэ нь бас хуучирсан байна .. бидэнд стандарт, ".tux" эсвэл Windows-ийн ".exe" -тэй төстэй зүйл хэрэгтэй. Энэ нь орон зайн асуудал мөн үү? .. Windows-д Gimp програм 72mb, Linux (.deb) -тэй ижил хэмжээ 4,2mb-ийг эзэлдэг ... яагаад ийм байна вэ? Gimp програм өөрөө Windows-д бүх номын санг дагалдуулж суулгасан үед програмыг ажиллуулж байгаа эсэхийг дагалддаг тул ... Линукс дээр бид үүнтэй ижил зүйл хийх боломжтой, гүйцэтгэгддэг зүйл илүү их эзэлдэг байсан тул бид давуу талаа алдах болно. хэмжээ, гэхдээ бид зөөвөрлөх чадварыг олж авдаг (мөн өнөө үед бидний халаасандаа хийдэг тийм том дурсамжуудтай бол ... хэрвээ бид бараг бүгдээрээ 4gb зүүлт авч явдаг бол 72MB-ийг 8MB-ээс авахад ямар ялгаатай вэ?)
    Эдгээр бүх зүйлийг өнгөлсөн байх ёстой ... систем нь тогтвортой, маш сайн дэмжлэгтэй, драйверын нийцтэй байдаг ... бид яагаад байгаа зүйлийг сайжруулахгүй байгаа юм бэ? ... хэн нэгэнд урам зориг өгвөл бид хэрэгжүүлж болох төслийг эхлүүлдэг. !

  6.   хидабэ гэж хэлэв

    Хмм ... за, консолыг хайрладаг хүмүүс хайрладаггүй болохоор хайртай биш үү, үүгээр олон зүйлийг автоматжуулж болно, жишээлбэл, серверийн түвшинд (гэхдээ энэ нь тийм биш юм).

  7.   юун гэж хэлэв

    Үнэнийг хэлэхэд консол нь маш их хэрэгтэй байдаг ... гэхдээ ffmpeg ашигладаг зарим шинэ GUI програмууд байдаг бөгөөд энэ нь Linux-ийн шинэ хэрэглэгчдэд илүү сонирхолтой, бүтээлч байдаг ... Би бараг бүх дистрибьютерийн агуулахад байдаг RecordMyDescktop-ийг санал болгож байна. консолыг хайрладаг олон хүмүүс байдаг, гэхдээ үүнийг аль болох ихээр дуусгах хэрэгтэй ... Линукс нь ширээний компьютер дээр төвлөрч, үүнийг үндсэндээ хүсдэг эцсийн хэрэглэгч болох график интерфэйс, боломжтой бол үзэсгэлэнтэй, практик байх ёстой. ... тийм хэцүү гэж үү? Бид гишгэж чадахгүй нь .. Линукс асар их чадвартай тул бид үүнийг шахах ёстой!
    Бүх зүйлээс үл хамааран энэ бол гайхалтай програм юм! Сайн бичлэг ^^

  8.   юун гэж хэлэв

    Үнэн бол тийм ээ, сурч мэдсэн зүйлээ хуваалцах нь маш сайн зүйл юм ... Энэ бол бичлэгийг үнэгүйдүүлж байгаа утгаар нь шүүмжлэх биш харин яагаад олон хүмүүс Линукс ашигладаггүйг шүүмжлэх явдал юм ... тэд юу ч гэж хэлсэн, консолыг хоёрдахь хавтгай болгож, график байгууламжид байр сууриа өгөх хэрэгтэй (энэ нь консолоор юм хийх боломжийг үгүйсгэж байгаа гэсэн үг биш, харин хэн үүнийг ашиглахыг хүсэж байгаа, хэн хүсэхгүй байгаа нь сайн ...
    Өдрийн төгсгөлд юу борлуулагддаг, гайхмаар зүйл бол OS-ийг ажиллуулахад хялбар байдаг ... Линукс нь дотооддоо зогсоож чадахгүй, гэхдээ хэрэглээний хялбар байдал, зөн совингийн интерфэйсийг нэмж оруулбал ... бид хэрэглэгчдийг хожиж, энэ нь ашиг тустай болно. олон нийтийн хөгжил, янз бүрийн хөтөлбөрүүд, видео тоглоомын компаниудын дэмжлэг, тиймээс тодорхой тоног төхөөрөмжүүд (график картуудыг хэлнэ үү), одоогоор зөвхөн Windows / Mac дээр байдаг төрөлжсөн програм хангамжийг бий болгох ... би мэдэхгүй, би Энэ бол 15м-ийн төлөвлөгөөнд байгаа гэж бодож байна ... бүгд маш сайхан байгаа, гэхдээ одоо чиглэлээ жаахан өөрчлөх цаг болжээ ... би бага зэрэг хэлье!

    Линукс дахь стандарт хэрэгжих төсөл одоо ч хэвээр байна. Хэрэв хэн нэгэн нь уншиж бидэнтэй хамтарч ажиллахыг хүсч байвал миний имэйлийг би нууж байгаа юм биш шүү (whysoyjuan@gmail.com)

    Сайн байцгаана уу, энд илүү олон сэтгэгдэл үлдээнэ гэж найдаж байна ... шүүмжлэл эсвэл магтаал байх нь хамаагүй, бид ярилцах ёстой.

  9.   Линукс ашиглая гэж хэлэв

    Сайн байна! Сайн хувь нэмэр.
    Тэврэх! Паул.

  10.   Жерардо гэж хэлэв

    Энэ хөтөлбөр юуны тухай вэ ... болгоомжтой байгаарай, би энэ талаар тийм ч сайн мэдэхгүй байна!

    1.    одоо линукс ашиглая гэж хэлэв

      Ерөнхийдөө видеог хөрвүүлэхэд ашигладаг. Энэ тохиолдолд бид үүнийг хэрхэн ашиглан ширээний компьютерээ бичиж, видео хичээл хийхэд ашиглаж болохыг харуулав.
      Тэврэх! Паул.

  11.   Таррибалис гэж хэлэв

    Баярлалаа. 1280X800 нарийвчлалтайгаар ffmpeg командыг ажиллуулахын тулд X-ийг томоор бичсэн байх ёстой.

bool (үнэн)