ฉันกำลังมองหาวิธีง่ายๆในการพิมพ์ไปยังไฟล์ข้อมูลต่อไปนี้ในไดเรกทอรีที่เต็มไปด้วยไฟล์วิดีโอ:
ชื่อไฟล์, ประเภทไฟล์, ความยาววิดีโอ (เป็นวินาที)
ฉันรู้ว่าสองคนแรกนั้นง่ายมากมันเป็นบิตที่สามของข้อมูลที่ฉันมีปัญหาในการค้นหาวิธีอัตโนมัติเพื่อให้บรรลุ
ฉันกำลังมองหาวิธีง่ายๆในการพิมพ์ไปยังไฟล์ข้อมูลต่อไปนี้ในไดเรกทอรีที่เต็มไปด้วยไฟล์วิดีโอ:
ชื่อไฟล์, ประเภทไฟล์, ความยาววิดีโอ (เป็นวินาที)
ฉันรู้ว่าสองคนแรกนั้นง่ายมากมันเป็นบิตที่สามของข้อมูลที่ฉันมีปัญหาในการค้นหาวิธีอัตโนมัติเพื่อให้บรรลุ
คำตอบ:
คุณอาจจะติดตั้งอรรถประโยชน์บรรทัดคำสั่งexiftool
จากนั้นเปิดไฟล์ข้อความและคัดลอก / วางสคริปต์ทุบตีต่อไปนี้:
#!/bin/sh
find "~/Movies/" -name "*" -not -name ".*" -type f | while read file
do
FILETYPE=$(exiftool -p "\$FileType" "${file}")
FPS=$(exiftool -p "\$FrameRate" "${file}")
TOTALFRAMES=$(exiftool -p "\$FrameCount" "${file}")
DURATION=$[TOTALFRAMES*FPS]
echo ${file} ${FILETYPE} ${DURATION} > output.txt
done
แทนที่~ / Movies /ด้วยพา ธ แบบเต็มที่มีไฟล์ภาพยนตร์และoutput.txtด้วยชื่อไฟล์ผลลัพธ์ของคุณ
บันทึกไฟล์ไปยังโฟลเดอร์บ้านของผู้ใช้เช่น 'meta_generator' หรือตามชื่อที่คุณต้องการ
จากนั้นให้เปิดไฟ /Utilities/Terminal.app และประเภท:
chmod +x meta_generator
./meta_generator
แก้ไข : ฉันเพิ่งเห็นว่าคุณต้องการความยาวเป็นวินาทีดังนั้นฉันจึงเปลี่ยนแท็ก Duration
ด้วยการคูณอัตราเฟรมและจำนวนเฟรมทั้งหมดคุณจะได้รับวินาทีที่ต้องการ ..
แต่คุณอาจพบวิธีที่ง่ายกว่านี้ :)