จะทำวิดีโอ Stop Motion หรือ Time-Lapse กับเว็บแคมได้อย่างไร?


28

ฉันมีเว็บแคมที่ทำงานเป็นอุปกรณ์ v4l2

วิธีที่สะดวกที่สุดในการจับภาพวิดีโอสต็อปโมชั่นหรือไทม์แลปส์คืออะไร?

NB

stop-motion และ time-lapse มีความสัมพันธ์กัน แต่มีแนวคิดที่แตกต่างกัน

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

Stop-motion เป็นที่ที่คุณสามารถควบคุมฉากและถ่ายภาพทุกการเปลี่ยนแปลงที่คุณทำเพื่อสร้างแอนิเมชั่น (เช่น Wallace และ Grommit)

แอปพลิเคชันสำหรับการถ่ายภาพตามกำหนดเวลาจะต้องสามารถถ่ายภาพได้ในช่วงเวลาที่กำหนด


คำถามที่คล้ายกันในรูปภาพมีคำตอบที่น่าสนใจซึ่งทับซ้อนกันบางส่วน
Anarcat

คำตอบ:


40

ถ่ายภาพได้หนึ่งล้านรูป

ขั้นตอนแรกคือการถ่ายภาพ ลองจินตนาการว่าคุณต้องการถ่ายภาพทุกๆ 10 วินาทีและบันทึกลงในไดเรกทอรีที่อยู่บนเดสก์ท็อปของคุณ

mkdir ~/Desktop/cap
cd ~/Desktop/cap

เราใช้streamerทำการจับภาพดังนั้นลองติดตั้ง:

sudo apt-get install streamer

และตอนนี้เราต้องการที่จะจับ

streamer -o 0000.jpeg -s 300x200 -j 100 -t 2000 -r 1

-tคือจำนวนเฟรมที่เราต้องการบันทึก -rคือเฟรมต่อวินาที ดังนั้นนี่ควรคว้าหนึ่งเฟรมทุกวินาที หากคุณบีบอัดไฟล์นั้นลงในวิดีโอ 30fps การจับภาพหนึ่งนาทีจะกลายเป็นวิดีโอ 2 วินาที คุณจะต้องปรับจูนนี้อย่างเหมาะสมโดยขึ้นอยู่กับจำนวนวิดีโอที่คุณต้องการ

บรรทัดนั้นจะให้ภาพ 2000 ภาพคุณจะใช้เวลาครึ่งชั่วโมงในการบันทึกและที่ 30fps จะสร้างวิดีโอในเวลาเพียง 1 นาที

วางมันทั้งหมดเข้าด้วยกัน

ffmpegฉันจะใช้ มีหลายวิธีในการรวมมันเข้าด้วยกันรวมถึงmencoderแต่ฉันชอบffmpegมุมมองของชีวิตมากกว่า หลังจากติดตั้งแล้ว ( sudo apt-get install ffmpeg) ให้ลองทำดังนี้:

ffmpeg -r 30 -i %04d.jpeg -s hd480 -vcodec libx264 -vpre hq time-lapse.mp4

การตั้งค่าคุณภาพไม่เหมือนอะไรในเว็บแคมของฉันดังนั้นคุณอาจต้องการที่จะเล่นกับตัวเลือกมากมายเพื่อให้ได้การเข้ารหัสที่ดีขึ้น

คุณอาจต้องการเล่นกับ framerate ( -r) แต่ฉันจะไม่ไปต่ำกว่า 15fps


1
-r 0.1ทุกวินาทีสิบจะต้อง
Seppo Erviälä

man streamerไม่ได้อธิบายว่าแต่ละพารามิเตอร์ทำอะไร ฉันจะรับข้อมูลเกี่ยวกับjพารามิเตอร์ได้ที่ไหน ฉันจะทำให้มันจับภาพได้จนกว่าฉันจะกด CTRL + C พร้อม FPS ที่ให้มาได้อย่างไร
Tomáš Zato - Reinstate Monica

@oli ffmpegไม่ทำงานอีกต่อไปสำหรับฉัน ฉันควรใช้อะไร
ทิม

1
@ ChrisH มันดีในทางเทคนิคฉันแค่หมายความว่ามันถูกตัดพื้นฐานสำหรับวิดีโอที่ราบรื่น ส่วนใหญ่จะขึ้นอยู่กับว่าคุณจะรับมันเร็วแค่ไหน
Oli

2
@ TomášZato streamer -hมีความครอบคลุมมากยิ่งขึ้น ฉันเกลียดเมื่อนักพัฒนาใช้ความพยายามอย่างมาก--helpแต่ไม่มีสิ่งใดสำหรับหน้าเว็บมนุษย์
WasabiFlux

9

ในการจับภาพทุกๆ X จำนวนวินาทีจากเว็บแคมให้ใช้การเคลื่อนไหว

ติดตั้ง motion

sudo apt-get install motion หรือ sudo aptitude install motion

กำหนดค่าการเคลื่อนไหวทุก ๆ X วินาที

sudo nano /etc/motion/motion.conf

เปลี่ยนค่าตัวแปรขั้นต่ำ _ เฟรม _ เวลาและsnapshot_intervalเป็นจำนวนวินาทีที่คุณต้องการถ่ายภาพด้วยเว็บแคม

10 นาที = 600 วินาที
20 นาที = 1200 วินาที
30 นาที = 1800 วินาที
1 ชั่วโมง = 3600 วินาที
2 ชั่วโมง = 7200 วินาทีและอื่น ๆ ...

เรียกใช้การเคลื่อนไหวด้วยsudo motionหยุดมันด้วยCTRL+C

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


ดีกว่าสตรีม ไม่แน่ใจว่าฉันชอบโซลูชันที่ต้องมีรูทและดูเหมือนว่าฉันจะสูญเสียความสามารถในการใช้งานเหมือนกระจกมองหลัง แต่ดีกว่าลำแสงมากกว่าและอาจแก้ปัญหาอื่นที่ฉันต้องการดู ที่ซึ่งจะถ่ายภาพก็ต่อเมื่อฉันอยู่ที่นั่น จะทำเครื่องหมายแก้ไขนี้หากฉันสามารถแก้ไขปัญหาอื่น ๆ ได้
Dave Jacoby

จริงๆแล้วคุณไม่จำเป็นต้องเข้าถึงรูทเพื่อใช้งาน คุณต้องการการเข้าถึงรูทเพื่อแก้ไขไฟล์กำหนดค่า
Luis Alvarado

ฉันคิดว่าถ้าคุณต้องการเขียนเส้นทางเริ่มต้นอาจจำเป็นเช่นกัน แต่นั่นเป็นสิ่งแรกที่ฉันเปลี่ยน ขอบคุณ
Dave Jacoby

ไม่มีปัญหาเพื่อน ดีใจที่ได้ช่วยเหลือ
Luis Alvarado

ฉันลองแล้ว มันใช้งานได้ดี ฉันอาจลองอีกครั้งในบางจุด แต่มันก็ไม่ได้ทำให้ฉันมองด้านหลังซึ่งฉันให้ความสำคัญมากกว่าการถ่ายภาพอัตโนมัติ ตอนนี้ฉันกำลังเรียกใช้ชีสอยู่
Dave Jacoby

7

gTimelapse ( ลิงค์ดาวน์โหลด )

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

แอปพลิเคชั่นสำหรับจับภาพเพื่อสร้างวิดีโอตามเวลาที่สร้างขึ้นในไลบรารี gPhoto2 และ wxWidgets

รวบรวมคำแนะนำ

ดาวน์โหลดซอร์สจากเว็บไซต์ sourceforge

ในเทอร์มินัลพิมพ์ต่อไปนี้:

cd Downloads 
gunzip gtimelapse-0.1.tar.gz
tar -xvf gtimelapse-0.1.tar
cd gtimelapse
sudo apt-get install build-essential libgphoto2-2-dev libwxbase2.8-dev libwxgtk2.8-dev gphoto2
./configure
make
sudo make install

เพื่อเรียกใช้ประเภทแอปพลิเคชัน

gtimelapse &

nb 1

gphoto2 --list-cameras | more

nb 2

ดูบล็อกนี้สำหรับข้อมูลเพิ่มเติมที่เป็นประโยชน์

แสดงรายการอุปกรณ์ที่รองรับทั้งหมดที่แอปพลิเคชันรองรับ

nb 3

ฉันได้อ่าน gphoto2 ไม่สนับสนุนเว็บแคม - ฉันจะปล่อยให้คำตอบนี้มองเห็นได้ในกรณีที่ทุกคนต้องการลองคำตอบนี้ด้วยกล้องดิจิตอลที่ดีแทนที่จะเป็นเว็บแคม


ใช้เวลาพอสมควรในการดึงข้อมูลและรวบรวม wxWidgets พร้อมสิ่งที่จำเป็นทั้งหมด ฉันยังรวบรวม gTimelapse แต่เพิ่งเกิดปัญหาด้วย: [Debug] 13:21:12: ./src/common/menucmn.cpp(859): ยืนยัน "รายการ" ล้มเหลวใน Check (): wxMenu :: Check: ไม่มีรายการดังกล่าว [Debug] กำลังสร้างการติดตามสแต็ก ... โปรดรอสักครู่ติดตามดักจับ / เบรกพอยต์
Seppo Erviälä

โอเค - วันนี้ฉันจะไปสร้างตัวเองบ้าง - ฉันจะเพิ่มคำแนะนำบางอย่างให้กับคำตอบของฉัน
fossfreedom

สิ่งนี้มีประโยชน์มากเพราะฉันมีกล้องดิจิตอลรองรับโดย gphoto2 ฉันไม่รู้จักห้องสมุดเช่นนี้
Seppo Erviälä

1

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


1

วิธีที่ดีที่สุดและง่ายต่อการทำเช่นนี้คือโดยการติดตั้งการเคลื่อนไหว มันเป็นซอฟต์แวร์เฝ้าระวังเต็มรูปแบบสำหรับระบบปฏิบัติการบน Linux

ติดตั้งผ่านศูนย์ซอฟต์แวร์


1

ตัวเลือกที่รวดเร็วสกปรก แต่ค่อนข้างยืดหยุ่นกว่ามีดังนี้:

ffmpeg -pattern_type glob -framerate 25 -i 'image-*.jpg' -c:v libx264 \
    -profile:v high -crf 20 -pix_fmt yuv420p output.mp4

นี่ฉันเพิ่ม-pattern_type globโดยใช้สัญลักษณ์แทนและใส่ชื่อไฟล์ของฉันในการเสนอราคาเดียว:*'image-*.jpg'

ประโยชน์ที่ได้รับ:ไวยากรณ์นี้ช่วยให้คุณเริ่มต้นที่หมายเลขใดก็ได้และมีรูปแบบใด ๆ ในการกำหนดหมายเลขของคุณ (ฉันมักจะสร้างการนับด้วย 20 โดยเริ่มต้นที่ประมาณ 20,000 ตัวอย่างเช่น)

ข้อเสีย:ไวยากรณ์นี้ไม่อนุญาตให้คุณข้ามตัวเลขซ้ำเช่นไวยากรณ์ '% ## d' นอกจากนี้คุณไม่สามารถมีรูปแบบการกำหนดหมายเลขโดยไม่นำหน้า 0s นั่นคือรูปแบบการตั้งชื่อไฟล์จะต้องเป็นแบบ 00001, 00002, ... 00033 ... (หมายเลขไม่สามารถเป็น 1,2,3, ... 33, ... , มิฉะนั้นหมายเลข '3' จะเรียงลำดับระหว่าง ตัวอย่างเช่น '39' และ '40')

แยกจากกันโปรดทราบว่าฉันต้องใส่ชื่อไฟล์อินพุตของฉันในเครื่องหมายคำพูดเดี่ยวมิฉะนั้น ffmpeg พยายามเขียนทับไฟล์รูปภาพทั้งหมดด้วยสำเนาของภาพแรก (ควรคัดลอกไฟล์สำรองไว้ก่อนเสมอเพื่อจัดการไฟล์ )

จากการแก้ไขนี้โดยผู้ใช้ที่ไม่ระบุชื่อ


0

คุณควรจะสามารถตั้งค่าการเคลื่อนไหว (ใน motion.conf) เพื่อสตรีม - โดยค่าเริ่มต้นมันสตรีมบนพอร์ต 8081 ทั้งหมดที่คุณต้องทำเพื่อให้ได้กระจก 'มุมมองด้านหลัง' ของคุณคือการเปิด VLC "Open Network Stream" และ ชี้ไปที่http: // localhost: 8081


0

Camorama เป็นโปรแกรมดู / บันทึกเว็บแคมที่ฉันเคยใช้ถ่ายภาพเป็นระยะเวลา 1 นาทีและอัปโหลดไปยังเว็บเซิร์ฟเวอร์จากเว็บแคมของฉัน มันเป็นการตั้งค่าที่ไม่ซับซ้อน นอกจากนี้ยังมีอยู่ใน Ubuntu Software Center หรือคุณสามารถติดตั้งโดยใช้:

sudo apt-get install camorama

หวังว่านี่จะช่วยได้


ขออภัยเพิ่งเห็นว่าคุณเขียนเว็บแคมของคุณไม่ทำงานกับ Camorama
kicsyromy

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