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

วิธีการคำนวณเวลาของวีดีโอในภาษา 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]

 

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
เริ่มเเล้ว "โครงการตู้เย็นข้างบ้านต้านภัย COVID-19" แจกฟรี.. เมล็ดพันธุ์ผักสวนครัวแก่เกษตรกรและประชาชนทั่วไป 10,000 ชุด
โดย thatsawan พ 06 พฤษภาคม 2020 9:55 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
212
พฤ 07 พฤษภาคม 2020 5:05 pm โดย thatsawan
padding ต่างจาก margin อย่างไร
โดย champp พฤ 07 พฤษภาคม 2020 4:49 pm บอร์ด CSS Knowledge
0
188
พฤ 07 พฤษภาคม 2020 4:49 pm โดย champp
IR infrared obstacle detection sensor คืออะไร
โดย champp พฤ 07 พฤษภาคม 2020 4:16 pm บอร์ด IOT - Internet of things
0
121
พฤ 07 พฤษภาคม 2020 4:16 pm โดย champp
ตู้จดหมายแจ้งเตือนผ่านไลน์ได้อย่างไร
โดย champp พฤ 07 พฤษภาคม 2020 3:58 pm บอร์ด IOT - Internet of things
0
164
พฤ 07 พฤษภาคม 2020 3:58 pm โดย champp
วิธีการบันทึกข้อมูลหลายตารางพร้อมกัน
โดย champp พฤ 07 พฤษภาคม 2020 3:39 pm บอร์ด PHP Knowledge
0
1777
พฤ 07 พฤษภาคม 2020 3:39 pm โดย champp
R - เครียร์ข้อมูลทดสอบ ออกจากหน้าเว็บ
โดย mindphp พฤ 07 พฤษภาคม 2020 10:24 am บอร์ด OdooJob.com - Developer
0
1
พฤ 07 พฤษภาคม 2020 10:24 am โดย mindphp
เกษตรกรปลูกพืชเตรียมรับเงินเยียวยา มีขั้นตอนตรวจดังนี้
โดย thatsawan อ 05 พฤษภาคม 2020 5:20 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
158
พ 06 พฤษภาคม 2020 7:53 pm โดย arenaofblood
อัพเดทแบบดับเบิล! Joomla เวอร์ชั่น 3.9.17 กับ 3.9.18
โดย tsukasaz อ 05 พฤษภาคม 2020 2:18 pm บอร์ด MindPHP News & Feedback
0
143
อ 05 พฤษภาคม 2020 2:18 pm โดย tsukasaz
แนะนำเทคนิคการเล่นกีฬา หัวข้อแบตมินตัน
โดย champp อ 05 พฤษภาคม 2020 12:43 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
82
อ 05 พฤษภาคม 2020 12:43 pm โดย champp
แนวทางสร้าง การจัดเก็บแบบระบุตำแหน่ง
โดย tanapong จ 04 พฤษภาคม 2020 11:41 pm บอร์ด Programming - PHP
4
186
พ 13 พฤษภาคม 2020 8:38 pm โดย tanapong
TIP การใช้ SSL ของ cloudflare คู่กับ Let's Encrypt
โดย mindphp ส 02 พฤษภาคม 2020 8:17 pm บอร์ด Linux - Web Server
0
219
ส 02 พฤษภาคม 2020 8:17 pm โดย mindphp
กรมส่งเสริมการเกษตรเปิด "โครงการตู้เย็นข้างบ้านต้านภัย COVID-19" สนับสนุนเมล็ดพันธุ์พืชผักสวนครัวให้แก่เกษตรกรและประชาชน
โดย thatsawan ส 02 พฤษภาคม 2020 2:58 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
158
ส 02 พฤษภาคม 2020 2:58 pm โดย thatsawan
วิธีการจัดรูปแบบเลขบัตรประชาชนที่กรอกอัตโนมัติ
โดย Ittichai_chupol ศ 01 พฤษภาคม 2020 5:48 pm บอร์ด Jquery & Ajax Knowledge
0
307
ศ 01 พฤษภาคม 2020 5:48 pm โดย Ittichai_chupol
ปรับรูปภาพ fandeedee
โดย numtan5839 ศ 01 พฤษภาคม 2020 11:29 am บอร์ด FDD (Main)
29
167
พ 20 พฤษภาคม 2020 11:36 am โดย numtan5839
ปัญหา Deprecated: Function ereg() is deprecated ereg_replace()
โดย mindphp ศ 01 พฤษภาคม 2020 2:54 am บอร์ด Programming - PHP
1
1087
ศ 01 พฤษภาคม 2020 4:35 am โดย mindphp
ประวัติความเป็นมาการแข่งเรือยาว
โดย baitoeijr1230 พฤ 30 เม.ย. 2020 9:39 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
224
อ 14 มิ.ย. 2020 12:36 am โดย Jesse00
วิธีการใช้งานตัว flask jwt เพื่อทำการ authenticate แบบใช้ Token ด้วย curl
โดย jirawoot พฤ 30 เม.ย. 2020 7:07 pm บอร์ด Python Knowledge
0
201
พฤ 30 เม.ย. 2020 7:07 pm โดย jirawoot
สร้าง slideshow หรือภาพสไลด์หน้าเว็บด้วย Module Product Slide ของ MooZiiCart
โดย prmindphp พ 29 เม.ย. 2020 6:34 pm บอร์ด MindPHP News & Feedback
1
138
พ 10 มิ.ย. 2020 4:36 pm โดย mindphp
วิธีการ Overrite การแจ้งเตือนเพื่อนำมาปรับแต่งใน Extension ของ phpbb
โดย Ittichai_chupol อ 28 เม.ย. 2020 7:01 pm บอร์ด PHP Knowledge
0
240
อ 28 เม.ย. 2020 7:01 pm โดย Ittichai_chupol
จะเขียน py ธรรมดาอ่านไฟล์ config ทำยังไงค่ะ
โดย thatsawan อ 28 เม.ย. 2020 4:42 pm บอร์ด Programming - C/C++ & java & Python
1
183
พฤ 30 เม.ย. 2020 11:00 am โดย jirawoot