পুনরায় কোডিং ছাড়াই কীভাবে কোনও ভিডিওর ফ্রেমরেট পরিবর্তন করবেন


14

আমি একটি এমপি 4 ভিডিওর ফ্রেমরেট পরিবর্তন করার চেষ্টা করছি (এটি একটি 120fps গোপ্রো ভিডিও, আমি এটি 30fps এ ধীর গতির প্রভাবের জন্য খেলতে চাই)।

আমি এর জন্য অ্যাভকনভ ব্যবহার করছি:

avconv -i SourceMovie.mp4 -vf setpts=4.0*PTS -r 30 DestMovie.mp4

এটি প্রযুক্তিগতভাবে কাজ করে তবে এটি সিনেমাটিকে পুনরায় কোড করে। ধীর হওয়ার পাশাপাশি এটি অবশ্যই একটি মানের সমস্যা। প্রযুক্তিগতভাবে কেবল ভিডিওর শিরোনামে fps সেট করার একটি উপায় থাকা উচিত, আমি কীভাবে এটি পরিবর্তন করতে পারি? (অ্যাভকনভ ব্যতীত অন্য কোনও সরঞ্জামও কার্যকর হবে।)

উত্তর:


15

এমপি 4বক্স এটি করতে পারে।

আদেশ

MP4Box -add SourceMovie.mp4#video -raw 1 -new test

ফাইল testএবং তৈরি করে test_track1.h264। আপনি এখন যে কোনও সমর্থিত ফ্রেমারেটের সাথে একটি এমপি 4 ফাইল তৈরি করতে পারেন (এই উদাহরণে 30):

MP4Box -add test_track1.h264:fps=30 -new DestMovie.mp4

এমপি 4বক্স gpacপ্যাকেজের অংশ , সুতরাং এটি ইনস্টল করা আছে তা নিশ্চিত করুন।


6
এটি সত্যই সোজা নয়, তবে আমি এটি পেয়েছি - আপনার এটি দুটি ধাপে করা দরকার। প্রথমে কাঁচা ( MP4Box -add source.mp4#video -raw 1 -new test) হিসাবে আলাদা করে ভিডিও স্ট্রিমটি বের করুন এবং তারপরে আবার এটি এমপি 4 হিসাবে সংরক্ষণ করুন ( MP4Box -add test_track1.h264:fps=30 -new dest.mp4)। আপনি সেখানে অডিও ট্র্যাক যুক্ত করতে পারেন (# অডিওর মাধ্যমে)।
ইবোমাইক

-singleপ্রথম কমান্ডের জন্য বিকল্পটি ব্যবহার করা ভাল । দুটির পরিবর্তে MP4Box -single 1 -raw 1 SourceMovie.mp4কেবল একটি ফাইল তৈরি করে SourceMovie_track1.h264
ডিভেনসনোক

6

ভিডিওর (কন্টেইনার) শিরোনামে ফ্রেমরেট পরিবর্তন করা নিজেই ভিডিওস্ট্রিমে (বা অডিওস্ট্রিমে) কোনও প্রভাব ফেলেনি। পুনরায় কোডিং একমাত্র বিকল্প।

ভিডিওস্ট্রিমে টাইমস্ট্যাম্প থাকে এবং বেশিরভাগ ভিডিওর ফ্রেমে ইন্টারফ্রেম সংকোচনের কারণে একে অপরের উপর নির্ভরশীল। কিছু প্লেয়ার ভিডিও এম্বেড করা কমান্ড বা কিছু দিয়ে না করে ভিডিওটি গতি বাড়িয়ে এবং কমিয়ে দিতে পারে। কোনও প্লেয়ার যখন ফ্লাইরেটে ফ্রেমরেট পরিবর্তন করতে পারে যখন কোনও কন্টেইনার্কমন্ড এটি করতে বলে। ভিডিওফাইলটি নির্দিষ্টকরণের সমাপ্ত হবে (অর্থাত্ মানগুলি অনুসরণ করে না) এবং 99.9% খেলোয়াড় এটি মেনে চলতে অস্বীকার করবে। আপনি যা চান তা পুনরায় সংশোধন না করে করা বেশ অসম্ভব। অবশ্যই আপনি আপনার সম্পাদনার শেষ ধাপ পর্যন্ত পুনর্নির্মাণের সাথে অপেক্ষা করতে পারেন।


1
ধন্যবাদ থম! বোকা প্রশ্ন যদিও - কেন? প্রতিটি ফ্রেমের কি এমন টাইমস্ট্যাম্প রয়েছে যা প্লেয়ারকে একটি নির্দিষ্ট প্লেব্যাকের গতি প্রয়োগ করতে বাধ্য করে? আমি ঠিক একই ফ্রেমগুলি চাই, আমি চাই যে এগুলি আবার আলাদা হারে খেলানো হোক।
ইবোমাইক

2
হাই মাইক, আপনার কোনও প্রশ্ন বোকা নয়, সত্যিই আপনি যেভাবে চালাক বলে মনে করেন তা সত্য। আমি চিন্তা আপনার পছন্দ. আমি আমার উত্তরে আরও তথ্য যুক্ত করেছি কারণ এটি কমেন্টবক্সে রাখার জন্য খুব দীর্ঘ ছিল।
থম

ধন্যবাদ! এটি বেশ তথ্যপূর্ণ। এখন পুনরায় পুনর্নির্মাণের জন্য - অ্যাভকনভের মতো কিছু করার সর্বোত্তম উপায় কী? আমি উপরের কমান্ড লাইনটি ব্যবহার করেছি, তবে এর ফল ভয়াবহ মানের - আমি প্রায় প্রতিটি ম্যাক্রোব্লক দেখতে পেতাম।
ইবোমাইক

1
আমি মনে করি ভিডিও স্ট্রিমগুলির টাইমস্ট্যাম্পগুলি ধারকটিতে সংরক্ষণ করা হয়, কাঁচা এইচ .264 বিটস্ট্রিম নিজেই নয় I যতক্ষণ আপনি কেবল সময় পরিবর্তন করতে চান তবে ক্রমটি নয়, কোন ফ্রেমটি কখন প্রদর্শিত হবে, আপনার ট্রান্সকোড করার দরকার নেই, কেবল রিমাক্স। (এবং যদি আপনি Xcode না, দ্রুত হার্ডওয়্যার সঙ্গে আপনি -preset ধীর বা veryslow ব্যবহার একই বিটরেট এ আরো মানের পেতে চাই, পরিবর্তে শুধুমাত্র 18 বা কিছু, না ABR -crf সমস্যা এবং ব্যবহার আরও বিট নিক্ষেপ।)
পিটার কর্ডস

1
আমি কীভাবে আলাদা ফ্রেমরেট আউটপুট করতে ffmpeg পেতে পারি তা বুঝতে পারি না। দেখে মনে হচ্ছে এমকিভ্র্যাম / এমপিপিউক্স প্রয়োজনীয়, যদি না আপনি কোনও কাঁচা .২64৪ বিটস্ট্রিম আউটপুট পেতে ffmpeg পেতে পারেন এবং তারপরে h.264 ডেমাক্সারের fps বিকল্পটি ব্যবহার করতে পারেন (যার সম্পূর্ণ ডকুমেন্ট রয়েছে, যেহেতু বিটস্ট্রিমের সময় নেই তথ্য, কেবল অর্ডার
পিটার কর্ডেস

3

আপনার প্রধান অভিপ্রায়টি ধীর গতিতে এটি চালানো এবং ফাইলটিকে এমপি 4 হিসাবে না রাখার ক্ষেত্রে আপনি এমকেভির্মস জিইআইআই সরঞ্জামটি ম্যাট্রোস্কা ধারকটিতে পুনরায় লাগাতে ব্যবহার করতে পারেন যা ফ্রেমরেটটি সহজেই পরিবর্তন করতে পারে। পুনরায় কোডিংয়ের চেয়ে রিমাক্সিং অনেক ভাল, কারণ এটি কেবল মেটাডেটা পরিবর্তন করে, এবং নিজেই স্ট্রিমটি নয়।

প্রথমে আপনি প্যাকেজটি ইনস্টল করুন

sudo apt-get install mkvtoolnix-gui

তারপরে আপনি এমকেভির্ম জিইউআই শুরু করুন। আপনি এই মত একটি উইন্ডো সম্মুখীন হবে

এমকিভরম গুই ঘ

কেবল অ্যাড বাটন টিপুন এবং আপনার ফাইল নির্বাচন করুন বা এমনকি "ইনপুট ফাইলগুলি" এ অঞ্চলে ফাইলটি ড্রাগ-এন-ড্রপ করুন। এই মুহুর্তে আপনার ভিডিওতে ভিডিও স্ট্রিম নির্বাচন করতে সক্ষম হওয়া উচিত। আপনি অন্যান্য স্ট্রিমগুলিও মুছতে পারেন, যেহেতু তারা কেবল কোনওভাবেই পাবে।

এটি নির্বাচন করার পরে নীচের ট্যাবগুলি সক্রিয় হওয়া দেখতে হবে:

এখানে চিত্র বর্ণনা লিখুন

"নির্দিষ্ট ক্রিয়াগুলি ফর্ম্যাট করুন" এ পরিবর্তন করুন

এখানে চিত্র বর্ণনা লিখুন

আপনি দেখতে পাচ্ছেন যে একটি ক্ষেত্র "এফপিএস" রয়েছে, যেখানে আপনি প্রতি সেকেন্ডে ফ্রেমের মান ইনপুট করতে পারেন। দেখে মনে হচ্ছে আপনি চারবার জিনিস ধীর করার পরিকল্পনা করছেন, তাই প্রতি সেকেন্ডে প্রায় 7 ফ্রেম আপনার লক্ষ্য হবে। আপনি "স্ট্রেচ বাই" বিকল্পটিও ব্যবহার করতে পারেন।

এর পরে আপনি কেবল আউটপুট ফাইলের নাম পরিবর্তন করতে পারেন (যদি আপনি চান) এবং "স্টার্ট ম্যাক্সিং" টিপুন।

প্রোগ্রামটি চলবে এবং আপনার ফাইল থাকা উচিত।


2

আমি আমার 120 টি এফপিএস সিনেমা 30 এফপিএসে ধীরে ধীরে নামাতে চেয়েছিলাম। আমি স্ক্রিপ্ট তৈরি করেছি যা এটি সাউন্ড টেম্পো পরিবর্তন করে এবং সরাসরি এমপি 4 পাত্রে এফপিএস পরিবর্তন করে। নিম্নলিখিত সরঞ্জামগুলি প্রয়োজনীয়:

  1. অডিও স্ট্রিম রূপান্তর করতে অ্যাভকনভ v
  2. অডিও টেম্পো ধীরে ধীরে সংক্ষেপে
  3. জিপিএকে এফপিএস পরিবর্তন করতে এমপি 4 বক্স পেতে

রূপান্তরকরণের জন্য ব্যবহৃত স্ক্রিপ্টটি এখানে:

#!/bin/bash
#########################################
# Lossless slow down from 120 to 30 FPS #
#                                       #
# Use:                                  #
#                                       #
#   slow.bash <mp4_file>                #
#                                       #
#                           #-= OSi =-# #
#########################################


# Prepare basic variables
IN_FILE="$1"
NAME=$(echo "${IN_FILE}" | sed 's/\.[^.]*//')


# Clean up before start
rm -f "${NAME}.ac3" "${NAME}.wav" "${NAME}_.wav" "${NAME}" "${NAME}_track1.h264" "${NAME}_slow.mp4"


# Slow down sound
avconv -i "${IN_FILE}" -vn -acodec pcm_s16le "${NAME}_.wav"
soundstretch "${NAME}_.wav" "${NAME}.wav" -tempo=-75
avconv -i "${NAME}.wav" -vn -codec:a ac3_fixed -b:a 448k "${NAME}.ac3"


# Change video frame rate and multiplex with slowed sound
MP4Box -add "${IN_FILE}#video" -raw 1 -new "${NAME}"
MP4Box -add "${NAME}_track1.h264:fps=30" -add "${NAME}.ac3" -new "${NAME}_slow.mp4"


# Clean up when we are done
rm -f "${NAME}.ac3" "${NAME}.wav" "${NAME}_.wav" "${NAME}" "${NAME}_track1.h264"

এই স্ক্রিপ্টটি _ ধীর পোস্টফিক্স সহ এমপি 4 এর অনুলিপি তৈরি করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.