วิธีบันทึก WebM บนเดสก์ท็อป


13

ฉันกำลังมองหาเดสก์ท็อปเครื่องบันทึก / แอปพลิเคชัน screencast ที่สามารถแสดงผลในรูปแบบ WebM หรือโปรแกรมที่สามารถแปลงฟอร์แมต. gog ที่สร้างโดยgtk-recordmydesktopเป็น WebM

ฉันเลือก WebM เป็นรูปแบบที่ฉันต้องการเพราะดูเหมือนจะเป็นตัวแปลงสัญญาณฟรีเพียงตัวเดียวที่ YouTube รองรับซึ่งการบันทึกของฉันจะจบลง ฉันเคยลองอัปโหลดไฟล์. ogv ในอดีตและมีวิดีโอสีเขียวที่เป็นของแข็งดังนั้นมันจะไม่ทำงานสำหรับฉัน

ฉันอาศัยอยู่ในประเทศสหรัฐอเมริกาและฉันตระหนักเกี่ยวกับการพยายามที่จะอยู่ห่างจากสิ่งที่อาจมีปัญหาสิทธิบัตรซอฟต์แวร์เช่นหรือgstreamer0.10-plugins-ugly gstreamer0.10-plugins-badด้วยเหตุผลนี้เองที่ฉันสนใจ Tibesti (ตัวอย่าง) แต่เดิมนั้นต้องการการติดตั้งแพคเกจอย่างที่กล่าวไว้ข้างต้น

ฉันได้ทำการค้นหาทางออนไลน์เพื่อหาวิธีแก้ปัญหาฟรี (ทั้งในเรื่องเงินและอิสรภาพ) แต่จนถึงตอนนี้ก็ไม่พบอะไรเลย ข้อเสนอแนะใด ๆ


คุณบอกตำแหน่งของคุณได้ไหม
Lincity

@Alaukik ฉันได้กล่าวไว้ข้างต้นฉันอาศัยอยู่ในสหรัฐอเมริกา หากคุณต้องการทราบว่ารัฐใดฉันอาศัยอยู่ในรัฐมิชิแกน ฉันไม่ต้องการเจาะจงมากกว่านั้น
Christopher Kyle Horton

@ Warriorlng64 อ๊ะ!
Lincity

คำตอบ:


6

12.04 LTS

ปรากฏว่าffmpeg ไม่สามารถทำงานได้อย่างถูกต้องในรีลีสนี้สำหรับการแปลงการrecordmydesktopบันทึก. gv เป็น WebM เนื่องจากไม่ได้รับการบำรุงรักษาอีกต่อไปจึงขอแนะนำให้ใช้การแทนที่avconvแทนซึ่งมีอยู่ในlibav-toolsแพ็คเกจ (ซึ่งดูเหมือนว่าจะติดตั้งโดยอัตโนมัติหากffmpegติดตั้งไว้)

คำสั่งที่จำเป็นavconvสำหรับการแปลงไม่แตกต่างจากffmpeg:

avconv -i input.ogv output.webm

ดังนั้นหากใคร ๆ กำลังเผชิญกับปัญหาเดียวกันของการพยายามใช้แพคเกจฟรีเท่านั้นที่จะแปลงจาก. ogv เป็น. webm ใน 12.04 (หรือน่าจะเป็นภายหลัง) นี่คือวิธีที่ฉันแก้ไข สิ่งนี้จะมีประโยชน์หากคุณกำลังทำการบันทึกเพื่อแสดงคุณสมบัติใหม่หรือปัญหาเกี่ยวกับเอกสารโดยใช้วิดีโอ


เมื่อเร็ว ๆ นี้ฉันเริ่มทำงานกับKazamตอนนี้สามารถบันทึกในรูปแบบ VP8 / WebM และ H264 / Matroska ฉันสร้าง PPA สำหรับ Oneiric และ Precise มันใช้ gstreamer สำหรับการบันทึกและไม่ต้องการ ffmpeg มันควรจะทำงานบน Ubuntu ที่ติดตั้งเรียบร้อยไม่มีตัวแปลงสัญญาณเพิ่มเติม
BigWhale

@BigWhale Browsing รหัสเล็ก ๆ น้อย ๆ ผมสังเกตเห็นว่ามันดูเหมือนว่าจะยังคงขึ้นอยู่กับและgstreamer0.10-plugins-bad gstreamer0.10-plugins-uglyแพ็คเกจเหล่านี้มีตัวแปลงสัญญาณที่ฉันพยายามหลีกเลี่ยงเนื่องจากปัญหาสิทธิบัตรตามที่ระบุไว้ข้างต้น หากบิลด์ที่อัปเดต / ทางเลือกพร้อมใช้งานซึ่งไม่ได้ขึ้นอยู่กับแพ็คเกจเหล่านี้โปรดแจ้งให้เราทราบในคำตอบใหม่ ขอบคุณนะ!
คริสโตเฟอร์ไคล์ฮอร์ตัน

ฉันได้รับError while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height
jrg

@jrg ผมมีปัญหาที่คล้ายกันในแล็ปท็อปของฉันเมื่อมีการแปลงวิดีโอที่บันทึกไว้ผมใช้วิธีแก้ปัญหาที่โพสต์บนนี้recordmydesktopรายงานข้อผิดพลาด พออยากรู้อยากเห็นเมื่อฉันเอาวิดีโอเดียวกันไปยังเครื่องเดสก์ท็อปของฉันและแปลงมันที่นั่นมันทำงานได้โดยไม่มีปัญหา ดังนั้น ... มันอาจจะเป็นข้อผิดพลาด แต่ฉันคิดว่าฉันยังไม่รู้เกี่ยวกับการรายงาน
Christopher Kyle Horton

1
ตามหมายเหตุด้าน: FFMpeg ยังคงอยู่ (ในความเป็นจริงรุ่น 1.0 เพิ่งออกมา) แต่มีสงครามระหว่างนักพัฒนาบางคนซึ่งนำไปสู่การแยก avconv เป็นเพียงว่าผู้ดูแลเดเบียน / อูบุนตูเข้าข้างกับ avconv ข้อความ "โปรแกรมนี้เลิกใช้แล้ว" ทำให้เข้าใจผิดโดยสิ้นเชิง อ่านข้อมูลเกี่ยวกับสถานการณ์ในปัจจุบันที่นี่: http://blog.pkh.me/p/13-the-ffmpeg-libav-situation.html
phoibos

6

ฉันใช้สิ่งต่าง ๆ เช่นนั้น:

avconv -f x11grab -s 1024x768 -r 24 -i 0:0 -deadline realtime -b 5000000 -minrate 200000 -maxrate 40000000 recording-filename-000.webm

ที่ไหน:

-f x11grab - บังคับใช้การจับภาพหน้าจอ "รูปแบบ" ของอินพุต

-s 1024x768คือความละเอียดของไฟล์อินพุต (พื้นที่การจับภาพ aka) ตัวอย่างเช่นเท่ากับความละเอียดของเดสก์ท็อป หากเล็กกว่านั้นพื้นที่การบันทึกจะอยู่ที่ด้านซ้ายและด้านบน ฉันใช้พื้นที่การบันทึก 1024x768 ในตัวอย่างนี้

-r 24- อัตราเฟรม โดยทั่วไป 23 ถึง 30 FPS ใช้โดยภาพยนตร์จริงเพื่อให้ภาพที่บันทึกราบรื่น อย่างไรก็ตามสำหรับภาพหน้าจออาจลดลงเพื่อให้ได้ภาพที่ดีขึ้นที่บิตเรตที่ต่ำกว่า ฉันใช้ 24 เพื่อจับภาพหน้าจอเกม

-i 0:0เป็นคำใบ้ที่ใช้แสดง 0: 0 เป็นแหล่งข้อมูล (อุปกรณ์อยู่ในรูปแบบ xorg) หากคุณมีเพียง 1 มอนิเตอร์และการตั้งค่า Xorg ที่เป็นค่าเริ่มต้น 0: 0 จะโอเคเกือบทุกครั้ง

-deadline realtime- เป็นคำใบ้สำหรับ libvpx เราต้องการบันทึกสด เราต้องการประสิทธิภาพแบบเรียลไทม์ ดังนั้น libvpx จะทำดีที่สุดในการเข้ารหัส VP8 ในแบบเรียลไทม์ ในการทำเช่นนั้นจะค่อนข้างมีคุณภาพสำหรับความเร็ว ที่คุณภาพบิตเรตที่กำหนดจะเลวร้ายยิ่งกว่าที่ควรจะเป็นแบบไม่เรียลไทม์ แต่ความเร็วในการเข้ารหัสจะพุ่งสูงขึ้น ดังนั้นในฮาร์ดแวร์ของฉันมันสามารถกระทืบ 1024x768 @ 24FPS, ฉากที่รุนแรง, โดยไม่ต้องวางเฟรมใด ๆ (แนะนำให้ใช้ CPU ที่ทรงพลัง) ในตัวอย่างนี้ฉันต้องการจับภาพสดคุณภาพดีที่ FPS ที่ดีและพื้นที่การจับที่ค่อนข้างใหญ่ ดังนั้นการใช้ CPU โดยตัวแปลงสัญญาณอาจเป็นปัญหา นั่นเป็นเหตุผลที่คำแนะนำนี้จำเป็นจริงๆสำหรับผลลัพธ์ที่ดี

-b 5000000- บิตเรตเป้าหมายในหน่วยบิต / วินาที ฉันใช้ 5Mbits เพื่อให้ได้ภาพที่ดีในฉากที่ค่อนข้างเข้ม ตัวแปลงสัญญาณจะพยายามให้บิตเรตความเร็วเฉลี่ยของวิดีโอใกล้เคียงกับค่านี้ ค่านี้ยิ่งต่ำคุณภาพยิ่งแย่ลงและมีขนาดเล็กลง คุณสามารถทดลองสักเล็กน้อยเพื่อให้เข้าใจว่าบิตเรตนั้นดีสำหรับการใช้งานเฉพาะแบบใด บริการแบ่งปันวิดีโอจะเปลี่ยนวิดีโอหากคุณทำเกินกำหนด หากคุณกำลังจะใช้เซิร์ฟเวอร์ของตัวเองมันก็ขึ้นอยู่กับคุณที่จะดูแลการรับส่งข้อมูล หากคุณเปิดเครื่องช็อตคุณภาพของภาพจะไม่ดี อย่าลังเลที่จะเปลี่ยนค่าเพื่อรับแนวคิดที่ดีที่สุดสำหรับคุณ 5Mbits ถูกออกแบบมาเพื่อการถ่ายภาพที่น่าประทับใจในเกมที่คุณไม่สามารถเห็นภาพที่ถูกบีบอัดได้อย่างน่าพอใจ สำหรับการจับภาพนิ่งแอปพลิเคชั่นนั้นโดยทั่วไปคุณจะต้องการน้อยกว่านั้น

-minrate200000 - เป็นบิตเรตขั้นต่ำที่อนุญาตสำหรับตัวแปลงสัญญาณ ขึ้นอยู่กับลักษณะของสิ่งที่คุณต้องการจับภาพบางครั้งคุณอาจต้องการบังคับให้บิตเรตขั้นต่ำเพื่อให้ได้ภาพที่ดูสมเหตุสมผลไม่ว่าจะเกิดอะไรขึ้น บางครั้งฮิวริสติกของตัวแปลงสัญญาณสามารถลดบิตเรตที่ต่ำกว่าค่าที่คุณอาจต้องการให้ภาพที่ไม่ดีในบางฉาก ตัวเลือกนี้อนุญาตให้บังคับให้ตัวแปลงสัญญาณรักษาอัตราบิตต่ำสุดแม้ว่าตัวแปลงสัญญาณคิดว่าฉากง่ายและบิตเรตอาจลดลง ค่าสูงของพารามิเตอร์นี้อาจเพิ่มขนาดไฟล์โดยการป้องกันตัวแปลงสัญญาณจากการใช้บิตเรตที่ต่ำกว่า

-maxrate 40000000- ค่านี้ควบคุมอัตราบิตสูงสุดต่อเนื่องในฉากที่มีความเข้ม ฉันใช้ค่าที่สูงมากเพื่อให้ตัวแปลงสัญญาณสูงกว่าค่าเฉลี่ยที่ต้องการหากพิจารณาว่าความเร็วสูงเป็นสิ่งจำเป็นเพื่อรักษาคุณภาพในบางฉาก เพื่อให้ได้ภาพที่ดูดีในทุกสภาวะมันเป็นที่พึงปรารถนาที่จะตั้งค่านี้ให้สูงพอ (40Mbits คือความเร็วเหมือน BlueRay และจะทำเคล็ดลับ) ในทางตรงกันข้ามหากคุณกำลังจะสตรีมด้วยเซิร์ฟเวอร์ของคุณเองคุณจะต้องลดค่านี้ในราคาของคุณภาพของภาพในฉากที่รุนแรง เซิร์ฟเวอร์อื่นอาจล้มเหลวในการรับมือกับบิตเรตที่ต้องการและไม่สามารถส่งได้ในแบบเรียลไทม์แก่ผู้ใช้ จากนั้นผู้เล่นจะเผชิญกับบัฟเฟอร์ต่ำกว่า (ซึ่งเป็นที่น่ารำคาญ) บริการแบ่งปันวิดีโอจะดูแลตัวเองและมักจะแปลงวิดีโอเพื่อลดพารามิเตอร์ด้วยคุณภาพของภาพ

recording-filename-000.webm- เป็นชื่อไฟล์ของเอาต์พุต หากคุณใช้. webm extension ffmpeg / avconv นั้นฉลาดพอที่จะเข้าใจว่าคุณต้องการ WEBM มันง่ายมาก - avconv คาดเดารูปแบบที่ต้องการจากชื่อไฟล์ ดังนั้นไฟล์. WEBM ก็คือ WEBM ข้างใน

นั่นคือ - คำสั่งนี้ทำการบันทึกหน้าจอโดยตรงไปยังไฟล์ webm ไม่จำเป็นต้องมีการแปลงเพิ่มและlibvpxบอกเป็นนัยให้เร็วที่สุดเท่าที่จะทำได้ ไม่มีเสียงเนื่องจากไม่มีข้อกำหนดสำหรับอินพุตเสียง อาจหรือไม่เป็นสิ่งที่คุณต้องการ สำหรับเสียงคุณต้องระบุแหล่งอินพุตสำหรับสตรีมเสียงเช่นกัน

ป.ล. นี้อาจดูเหมือน overcomplicated เล็กน้อย แต่ในตอนท้ายของวันคุณสามารถคิดออกว่าขนาดหนึ่งไม่พอดีทั้งหมด ดังนั้นเพื่อให้ได้ภาพที่ดูดีในทุกสถานการณ์คุณอาจต้องการใช้มือจับโคเดกบางตัวและต้องการปรับมัน Ffmpeg ให้คุณจัดการทั้งหมดที่คุณอาจต้องการและมากกว่านั้น มันเป็นอาวุธหนักของการแปลงและเข้ารหัสวิดีโอ ดังนั้นตัวอย่างนี้เป็นจุดเริ่มต้นที่ดีสำหรับผู้ที่ต้องการทำการเข้ารหัสขั้นสูงไม่มากก็น้อยและพร้อมที่จะทดลองสักเล็กน้อยเพื่อให้ได้ผลลัพธ์ที่ดูดี


6

คุณสามารถทำการบันทึก WebM ใน Ubuntu 11.10 + GNOME Shell ได้โดยการกดปุ่มCtrl+ Shift+ Alt+ Rรวมกัน

ครั้งแรกที่คุณกดคำสั่งผสมวงกลมสีแดงจะปรากฏขึ้นในพื้นที่แจ้งเตือนเพื่อระบุว่าการบันทึกเริ่มขึ้นแล้ว ครั้งที่ 2 ที่คุณกดวงกลมสีแดงจะหายไปและคุณจะมีการบันทึกใน${HOME}/Videosไดเรกทอรี

ข้อมูลเพิ่มเติมที่นี่: Gnome Shell Cheat Sheet: การบันทึก Screencast


ในตอนแรกที่ฉันถามสิ่งนี้ฉันไม่มี GNOME Shell แต่ฉันเคยรวบรวมจากjhbuildวันที่ 10.10 และฉันติดตั้งไว้ในระบบ 11.10 ของฉันและฉันรู้ว่ามันใช้งานได้ ขอบคุณที่เพิ่มคำตอบ!
Christopher Kyle Horton

ในเวอร์ชันปัจจุบัน (โดยใช้ 16.04) วิดีโอจะถูกเก็บไว้ในที่มีชื่อไฟล์ของ~/Videos Screencast from {date} {time}.webm
Kariem

3

ใช้แอป transmageddon เพื่อทำเช่นนั้น แอพที่ใช้ Gstreamer

sudo apt-get install transmageddon หรือคลิกที่นี่ติดตั้ง transmageddon


ฉันดูที่การพึ่งพาของ transmageddon ผ่าน sudo apt-get install และแพ็คเกจ gstreamer-plugins-ugly ที่ฉันกล่าวถึงข้างต้นรวมอยู่ในรายการ อีกครั้งฉันไม่แน่ใจว่าสิ่งนี้ถูกต้องตามกฎหมายหรือไม่สำหรับฉันที่จะใช้และนั่นสำคัญสำหรับฉัน
Christopher Kyle Horton

2

ใช้Kazamเพื่อบันทึก

เอาต์พุตคือmkvและทำงานได้ดีกับ Youtube ปัญหาเดียวที่ Kazam ดูเหมือนจะยังไม่ได้รับการอัพเดทชั่วขณะหนึ่ง

BTW คุณควรจะปลอดภัยกับการใช้ Tibesti ถ้าฉันเข้าใจถูกต้องเว้นแต่คุณจะหวาดระแวงอย่างยิ่งว่ายานอวกาศมนุษย์ต่างดาวยักษ์ตัวหนึ่งจะลักพาตัวคุณและทำให้คุณต้องทรมานกับการใช้ซอฟต์แวร์ ...


Kazam ขอให้ทำการติดตั้ง ffmpeg ในระหว่างการติดตั้ง sudo apt-get ซึ่งฉันไม่แน่ใจว่าจะใช้อย่างถูกกฎหมายได้หรือไม่
Christopher Kyle Horton

@ Warrioring64 ผมไม่คิดว่าเป็นสิ่งผิดกฎหมาย ffmpeg ...
RolandiXor

เป็นสิ่งที่ฉันต้องกังวลเนื่องจากฉันอยู่ในสหรัฐอเมริกาและมีการบังคับใช้สิทธิบัตรซอฟต์แวร์ที่นี่ โปรดดูส่วนนี้ใน Wikipediaถ้ามันอาจช่วยให้คุณเข้าใจสิ่งที่ฉันได้รับที่นี่
Christopher Kyle Horton

2
@ Warrioring64 - เวอร์ชั่นที่รวมอยู่ในอูบุนตูนั้นถอดตัวแปลงสัญญาณเหล่านั้นออก
RolandiXor

โอเค ... แต่เมื่อมองไกลไปถึงการพึ่งพาที่ได้รับฉันก็พบว่า libavcodec-extra-52 และ libavutil-extra-52 ซึ่งจากการค้นคว้าอีกเล็กน้อยที่ฉันพบอาจทำให้เกิดปัญหากับฉันได้ ขออภัยถ้าฉันดูค่อนข้างยาก แต่ถึงแม้ว่าฉันอาจจะไม่ติดกับการใช้ซอฟต์แวร์เช่นนั้นฉันก็ยังไม่อยากให้มันเป็นมโนธรรมของฉัน
Christopher Kyle Horton

2

11.10 และก่อนหน้า

ffmpegสามารถใช้ในการแปลง. gog เป็น. webm โดยตรงโดยไม่จำเป็นต้องใช้ตัวแปลงสัญญาณเพิ่มเติม ดังที่ได้กล่าวไว้ในความคิดเห็นเกี่ยวกับคำตอบอื่นเวอร์ชันของffmpegUbuntu ที่จัดทำโดยค่าเริ่มต้นไม่ได้กับตัวแปลงสัญญาณที่อาจก่อปัญหาสิทธิบัตรซอฟต์แวร์

นี่คือโปรแกรมบรรทัดคำสั่ง หากต้องการใช้เพียงเปิดหน้าต่างเทอร์มินัลแล้วป้อน:

ffmpeg -i input.ogv output.webm

ใช่. ฉันเพิ่งติดตั้ง ffmpeg โดยไม่มี medibuntu repo และมันดึงแพ็คเกจฟรีทุกรุ่นและฉันเข้ารหัส wmv to webm อย่างง่ายดายด้วย ffmpeg -i file.wmv -f webm -sameq file.webm
duffydack

1

IMO, วิธีที่ดีที่สุดในการแปลงวิดีโอ WebM เป็นFirefogg

  • นี่คือปลั๊กอินFirefox (ดังนั้นจึงเป็นเครื่องมือหลายแพลตฟอร์มเช่นเดียวกับ Firefox)
  • มันจะบีบอัดให้เป็นรูปแบบWebM (โอเพนซอร์ส - ตัวแปลงสัญญาณที่เข้ากันได้กับเว็บ)
  • มันมีขนาดการเข้ารหัสหลายขนาด (สะดวกในการคำนวณอัตราส่วนการอัดที่ดีที่สุด)
  • อัตราส่วนการบีบอัดที่มีประสิทธิภาพจริงๆ (อย่างน้อยเท่ากับ H264)
  • มันใช้งานง่ายสุด ๆ

ป้อนคำอธิบายรูปภาพที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.