ดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

วิธีการคำนวณเวลาของวีดีโอในภาษา python

          ในภาษา Python มีวีธีการคำนวณเวลา โดยจะการใช้ Json เข้ามาเกี่ยวข้องด้วยโดยจะเก็บข้อมูลต่าง แล้วจะมี library ที่ชื่อว่า subprocess เกี่ยวข้อง โดยการคำนวณเวลาในไฟล์เวลานั้นจะต้องทำการเรียกใช้หรือทำการ import เข้ามาใช้งานก่อนถึงจะทำงานได้

ก่อนที่จะไปเขียนมารู้จักความหมายพวกนี้กันก่อน

          JSON (JavaScript Object Notation) รูปแบบการรับส่งข้อมูลคอมพิเตอร์ขนาดเล็ก เป็นภาษาที่อ่าน, เขียน และสร้างเป็นภาษาโปรแกรมที่เข้าใจง่าย ถูกสร้างขึ้นมาโดย ดักกลาส คลอฟอร์ด ต้นกำเนิดอยู่ในรูปแบบ ของ RFC 4627 and ECMA-404 JSON เป็นรูปแบบข้อความภาษาอิสระ

ขั้นตอนการเขียน

ให้ทำการ import library module ก่อน

import subprocess as sp
import json

จากนั้นให้สร้างฟังก์ชั่น probe

def probe(vid_file_path):

    if type(vid_file_path) != str:
        raise Exception('Gvie ffprobe a full file path of the video')
        return

    command = ["ffprobe",
            "-loglevel",  "quiet",
            "-print_format", "json",
             "-show_format",
             "-show_streams",
             vid_file_path
             ]

    pipe = sp.Popen(command, stdout=sp.PIPE, stderr=sp.STDOUT)
    out, err = pipe.communicate()
    return json.loads(out)

สร้างฟังก์ชั่น duration เพื่อไว้สำหรับหาระยะเวลาของวีดีโอ

def duration(vid_file_path):
    _json = probe(vid_file_path)

    if 'format' in _json:
        if 'duration' in _json['format']:
            return float(_json['format']['duration'])

    if 'streams' in _json:
        # commonly stream 0 is the video
        for s in _json['streams']:
            if 'duration' in s:
                return float(s['duration'])

จากนั้นทำการเรียกใช้ฟังก์ชั่น duration

# -*- coding=utf-8 -*-

import subprocess as sp
import json

def probe(vid_file_path):

    if type(vid_file_path) != str:
        raise Exception('Gvie ffprobe a full file path of the video')
        return

    command = ["ffprobe",
            "-loglevel",  "quiet",
            "-print_format", "json",
             "-show_format",
             "-show_streams",
             vid_file_path
             ]

    pipe = sp.Popen(command, stdout=sp.PIPE, stderr=sp.STDOUT)
    out, err = pipe.communicate()
    return json.loads(out)

def duration(vid_file_path):
    _json = probe(vid_file_path)

    if 'format' in _json:
        if 'duration' in _json['format']:
            return float(_json['format']['duration'])

    if 'streams' in _json:
        # commonly stream 0 is the video
        for s in _json['streams']:
            if 'duration' in s:
                return float(s['duration'])

time_vdo= duration('content2language.mp4') # pathของวีดีโอ
end_minute=int(time_vdo/60)
end_second = int(time_vdo%60)
print 'นาที : %d' %end_minute
print 'วินาที : %d' %end_second

 ผลที่ได้ก็จะเป็น นาทีและ วินาทีของวีดีโอ ก็ทำอันที่เรียบร้อย

 

 

 

อ้างอิง

stackoverflow.(2551).How to get the duration of a video in Python?.[ออนไลน์].เข้าถึงได้จาก https://stackoverflow.com/questions/3844430/how-to-get-the-duration-of-a-video-in-python. [19 ส.ค. 2562]

 

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
อัพเดด Template เว็บไซต์ FDD (V2)
โดย mindphp อ 24 พฤษภาคม 2020 3:51 am บอร์ด FDD (Main)
0
1
อ 24 พฤษภาคม 2020 3:51 am โดย mindphp
R - ปรับกราฟฟิก ของเว็บ FDD
โดย mindphp อ 24 พฤษภาคม 2020 3:50 am บอร์ด FDD (Main)
0
2
อ 24 พฤษภาคม 2020 3:50 am โดย mindphp
ความคืบหน้า / Progress
โดย mindphp อ 24 พฤษภาคม 2020 3:46 am บอร์ด FDD (Main)
1
6
อ 26 พฤษภาคม 2020 8:18 am โดย mindphp
VDO - SP Page builder
โดย numtan5839 ศ 22 พฤษภาคม 2020 6:27 pm บอร์ด SP Page Builder Thai Edition - Manual & VDO & เทคนิคการใช้งาน
1
7
ศ 22 พฤษภาคม 2020 7:00 pm โดย mindphp
วิธีการใช้ Google Tasks แอพจัดการบันทึกสิ่งที่ต้องทำ
โดย sirirat ศ 22 พฤษภาคม 2020 11:04 am บอร์ด Share Knowledge
0
115
ศ 22 พฤษภาคม 2020 11:04 am โดย sirirat
งานประจำวันที่ 22 พฤษภาคม 2563
โดย sirirat ศ 22 พฤษภาคม 2020 10:10 am บอร์ด M102 - ศิริรัตน์ ทิพย์น้อย
1
23
ศ 22 พฤษภาคม 2020 11:22 am โดย numtan5839
สรุปการเรียนรู้ประจำวัน 21/05/63
โดย sirirat ศ 22 พฤษภาคม 2020 10:08 am บอร์ด M102 - ศิริรัตน์ ทิพย์น้อย
0
4
ศ 22 พฤษภาคม 2020 10:08 am โดย sirirat
รายงานความคืบหน้า / Process
โดย mindphp ศ 22 พฤษภาคม 2020 1:07 am บอร์ด SP Page Builder Thai Edition (Main)
1
3
ศ 22 พฤษภาคม 2020 1:34 am โดย mindphp
ส่ง site map ให้ google แต่ไม่โชว์ในเมนูบนเว็บเรา จะมีผลอะไรกับเว็บไหมครับ
โดย toonytoony2004 พฤ 21 พฤษภาคม 2020 10:17 pm บอร์ด Joomla Development
7
209
พ 03 มิ.ย. 2020 10:00 am โดย Sirayu
R - [email Formart-หาคน] เเจ้งเมื่อมีคนสมัครงานใน Odoojob
โดย thatsawan พฤ 21 พฤษภาคม 2020 5:12 pm บอร์ด Odoojob.com - Manual & Content
0
1
พฤ 21 พฤษภาคม 2020 5:12 pm โดย thatsawan
R - [email Formart-หางาน] หลังสมัครงาน บน Odoojob
โดย thatsawan พฤ 21 พฤษภาคม 2020 4:57 pm บอร์ด Odoojob.com - Manual & Content
0
5
พฤ 21 พฤษภาคม 2020 4:57 pm โดย thatsawan
ทำไมสมัครสมาชิกแล้วเข้าสู่ระบบไม่ได้??
โดย sirirat พฤ 21 พฤษภาคม 2020 4:56 pm บอร์ด MindPHP News & Feedback
1
94
พ 10 มิ.ย. 2020 4:35 pm โดย mindphp
สิ่งสำคัญที่คุ้มครองชีวิตให้ปลอดภัย เงินเก็บสำรองฉุกเฉิน
โดย medalezga พฤ 21 พฤษภาคม 2020 4:45 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
70
พฤ 21 พฤษภาคม 2020 4:45 pm โดย medalezga
R - [email Formart-mdsoft] หลังจากสมัครผ่าน mapp "แจ้งข้อมูลการเข้าระบบของเว็บไซต์ OdooJob"
โดย thatsawan พฤ 21 พฤษภาคม 2020 4:42 pm บอร์ด Odoojob.com - Manual & Content
0
4
พฤ 21 พฤษภาคม 2020 4:42 pm โดย thatsawan
การกำหนดเลเวลของวัสดุในระบบ ERP เพื่อการใช้งาน
โดย sirirat พฤ 21 พฤษภาคม 2020 3:41 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
72
พฤ 21 พฤษภาคม 2020 3:41 pm โดย sirirat
การผูก Role เข้ากับ User เพื่อกำหนดสิทธิ์การมองเห็น
โดย sirirat พฤ 21 พฤษภาคม 2020 2:53 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
81
พฤ 21 พฤษภาคม 2020 2:53 pm โดย sirirat
R - Option ตัวเลือก Industrials
โดย thatsawan พฤ 21 พฤษภาคม 2020 1:01 pm บอร์ด Odoojob.com - Manual & Content
0
5
พฤ 21 พฤษภาคม 2020 1:01 pm โดย thatsawan
เจอปัญหา GitLab Error 500 เฉพาะ user
โดย mindphp พฤ 21 พฤษภาคม 2020 1:01 pm บอร์ด Linux - Web Server
0
305
พฤ 21 พฤษภาคม 2020 1:01 pm โดย mindphp
R - Option ตัวเลือก ตำแหน่งที่ตั้ง
โดย thatsawan พฤ 21 พฤษภาคม 2020 1:00 pm บอร์ด Odoojob.com - Manual & Content
0
3
พฤ 21 พฤษภาคม 2020 1:00 pm โดย thatsawan
R - Option ตัวเลือก หมวดหมู่
โดย thatsawan พฤ 21 พฤษภาคม 2020 1:00 pm บอร์ด Odoojob.com - Manual & Content
0
1
พฤ 21 พฤษภาคม 2020 1:00 pm โดย thatsawan