উবুন্টুতে কোনও ভিডিওর এফপিএস পাওয়ার কোনও সহজ উপায় আছে? উইন্ডোতে আমি ভিডিও ফাইল সম্পর্কিত সমস্ত তথ্য জানতে Gspot ব্যবহার করি। তবে উবুন্টুতে আমি এই প্রাথমিক তথ্যটি খুঁজে পাওয়া খুব কঠিন। কোন সাহায্য প্রশংসা করা হয়।
উবুন্টুতে কোনও ভিডিওর এফপিএস পাওয়ার কোনও সহজ উপায় আছে? উইন্ডোতে আমি ভিডিও ফাইল সম্পর্কিত সমস্ত তথ্য জানতে Gspot ব্যবহার করি। তবে উবুন্টুতে আমি এই প্রাথমিক তথ্যটি খুঁজে পাওয়া খুব কঠিন। কোন সাহায্য প্রশংসা করা হয়।
উত্তর:
এটি ফ্রেমরেটকে বলবে যদি এটি পরিবর্তনশীল ফ্রেমরেট না হয়:
ffmpeg -i ফাইল নাম
অস্পষ্ট ফাইল নাম সহ নমুনা আউটপুট:
'সামেরানডম.এমকেভি' থেকে ইনপুট # 0, ম্যাট্রোস্কা, ওয়েবম: সময়কাল: 01: 16: 10.90, শুরু: 0.000000, বিটরেট: এন / এ স্ট্রিম # 0.0: ভিডিও: h264 (উচ্চ), yuv420p, 720x344 [পিআর 1: 1 দার 90:43], 25 এফপিএস, 25 টিবিআর, 1 কেবিএন, 50 টিবিসি (ডিফল্ট) স্ট্রিম # 0.1: অডিও: এ্যাক, 48000 হার্জেড, স্টেরিও, এস 16 (ডিফল্ট)
ffmpeg -i ফাইলের নাম 2> & 1 | সেড-এন "এস /.**, \ (। * \) এফপি। * / \ 1 / পি"
এমন একজনের সাথে কেউ সম্পাদনা করেছেন যা আমার ইচ্ছা মতো কাজ করে নি। এটি এখানে রেফারেন্স করা হয়েছে
অতিরিক্ত সম্পাদনা ... আপনি যদি টিবিআর মান চান তবে এই সেড লাইনটি কাজ করে
সেড-এন "এস /.**, \ (। * \) টিবিআর। * / \ 1 / পি"
sed -n "s/.*, \(.*\) tbr.*/\1/p
মিস করছি "
, না?
ffprobe -v 0 -of csv=p=0 -select_streams v:0 -show_entries stream=r_frame_rate infile
ফলাফল:
2997/100
0/0
ফর্ম্যাট উপর নির্ভর করে পেতে
-select_streams V:0
, যা প্রথম চলমান ভিডিও স্ট্রিমটি নির্বাচন করবে।
0/0
।
এখানে স্টেভেন পেনি এর উত্তর ভিত্তিক একটি অজগর ফাংশন যা ffprobe ব্যবহার করে যা সঠিক ফ্রেম রেট দেয়
ffprobe 'Upstream Color 2013 1080p x264.mkv' -v 0 -select_streams v -print_format flat -show_entries stream=r_frame_rate
import sys
import os
import subprocess
def get_frame_rate(filename):
if not os.path.exists(filename):
sys.stderr.write("ERROR: filename %r was not found!" % (filename,))
return -1
out = subprocess.check_output(["ffprobe",filename,"-v","0","-select_streams","v","-print_format","flat","-show_entries","stream=r_frame_rate"])
rate = out.split('=')[1].strip()[1:-1].split('/')
if len(rate)==1:
return float(rate[0])
if len(rate)==2:
return float(rate[0])/float(rate[1])
return -1
এমপ্লেয়ার ব্যবহার করে এটি করার জন্য এটি একটি অজগর স্ক্রিপ্ট, যদি কেউ আগ্রহী হয়। এটি ব্যবহৃত হয় path/to/script path/to/movie_name1 path/to/movie/name2
ইত্যাদি
#!/usr/bin/python
# -*- coding: utf-8 -*-
import subprocess
import re
import sys
pattern = re.compile(r'(\d{2}.\d{3}) fps')
for moviePath in sys.argv[1:]:
mplayerOutput = subprocess.Popen(("mplayer", "-identify", "-frames", "0", "o-ao", "null", moviePath), stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()[0]
fps = pattern.search(mplayerOutput).groups()[0]
print fps
আপনি টার্গেট ফাইল, সম্পত্তি, অডিও / ভিডিওতে ডান ক্লিক করতে পারেন তবে আপনি সঠিক ফ্রেমরেট পাবেন না। একটি নির্দিষ্ট ফ্রেমরেট পেতে আপনি MediaInfo ইনস্টল করতে পারেন।
এই ক্ষেত্রে যদি কেউ হোঁচট খায় তবে অবশ্যই আপনি ইনপুট আর্গটিকে পথ হিসাবে ব্যবহার করতে পারেন;)
import numpy as np
import os
import subprocess
def getFramerate():
con = "ffprobe -v error -select_streams v:0 -show_entries stream=avg_frame_rate -of default=noprint_wrappers=1:nokey=1 D:\\Uni\\Seminar\\leecher\\Ninja\\stream1.mp4"
proc = subprocess.Popen(con, stdout=subprocess.PIPE, shell=True)
framerateString = str(proc.stdout.read())[2:-5]
a = int(framerateString.split('/')[0])
b = int(framerateString.split('/')[1])
return int(np.round(np.divide(a,b)))