36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
|
# Version using ffPyPlayer
|
||
|
from pathlib import Path
|
||
|
import tkinter as tk
|
||
|
import time
|
||
|
from ffpyplayer.player import MediaPlayer
|
||
|
|
||
|
def ffplaySegment(file: Path, start: int, end: int):
|
||
|
print(f"Playing {file} from {start}ms to {end}ms")
|
||
|
file = str(file) # Must be string
|
||
|
seek_to = float(start)/1000
|
||
|
play_for = float(end - start)/1000
|
||
|
x = int(1280)
|
||
|
y = int(720)
|
||
|
volume = float(0.2) # Float 0.0 to 1.0
|
||
|
# Must be dict
|
||
|
ff_opts = {
|
||
|
"paused": False, # Bool
|
||
|
"t": play_for, # Float seconds
|
||
|
"ss": seek_to, # Float seconds
|
||
|
"x": x,
|
||
|
"y": y,
|
||
|
"volume": volume
|
||
|
}
|
||
|
val = ''
|
||
|
player = MediaPlayer(file, ff_opts=ff_opts)
|
||
|
while val != 'eof':
|
||
|
frame, val = player.get_frame()
|
||
|
print(f"frame: (type: {type(frame)})", end=', ')
|
||
|
if val != 'eof' and frame is not None:
|
||
|
img, t = frame
|
||
|
print(f"img: (type: {type(img)})", end=', ')
|
||
|
print(f"t: (type: {type(t)})")
|
||
|
# Use the create_image method of the canvas widget to draw the image to the canvas.
|
||
|
|
||
|
|