এফএফএমপিইগ ব্যবহার করে সর্বোচ্চ মানের সহ একটি এমপিইজি 2 ভিডিও ফাইল কীভাবে তৈরি করবেন?


16

আমি একটি ডাব্লুএমভি (ভি 9 (ডাব্লুএমভি 3), 960x720, 30.000030 এফপিএস, প্ল্যানার 4: 2: 0 ইউইউভি, পাওয়ারপয়েন্ট 2010 দ্বারা উত্পাদিত) ফাইল পেয়েছি এবং এটিকে এমপিইজি 2 তে রূপান্তর করতে হবে - আমার টিভিএসটি কেবল একটি ইউএসবি ফ্ল্যাশ ড্রাইভ থেকে পড়তে পারে এমন ফর্ম্যাট (আমি এমপি 4 / এইচ .264, এভিআই / এক্সভিআইডি চেষ্টাও করেছি - এমপিইজি 2 কাজ করে না)।

আমি সরল সাথে চাকরী করতে পেরেছি

ffmpeg -i "in.wmv" -c:v mpeg2video "out.mpg"

তবে ফলাফলের মানটি ভয়ঙ্কর (স্পষ্টভাবে দৃশ্যমান দৃষ্টিভঙ্গি বিকৃতিগুলি প্রবর্তিত হয়েছে) এবং প্লেব্যাক মসৃণ নয় (কিছু মুহুর্তে খুব ধীর))

আমি চেষ্টাও করেছি

ffmpeg -i "in.wmv" -c:v mpeg2video -pix_fmt yuv420p -me_method epzs -threads 4 -r 30.000030 -g 45 -bf 2 -trellis 2 -cmp 2 -subcmp 2 -s 960x720 -b 2500k -bt 300k -async 1 -y "out.mpg"

(আমি এটি ইন্টারনেটে কোথাও খুঁজে পেয়েছি এবং কিছুটা সংশোধন করেছি - পুনঃস্থাপন, রিফ্রেশ রেট এবং আউটপুট ফর্ম্যাটকে (ভিওবি থেকে বেয়ার এমপিজিতে)) সাফল্যের সাথে পরিবর্তন করেছি তবে মানটি এখনও খুব খারাপ।

যথাসম্ভব মান বাঁচাতে আমার কী পরামিতি ব্যবহার করতে হবে? সংকোচন অনুপাত মোটেই বিবেচনা করে না, এমনকি ফাইলের আকারে বৃদ্ধি গ্রহণযোগ্য।

আমার আসলে যে জিনিসটির প্রয়োজন হয় (এটিকে খুব সুনির্দিষ্ট না করে এড়াতে আমি এটিকে প্রশ্ন শিরোনামে অন্তর্ভুক্ত না করা বেছে নিয়েছি তবে উত্তরগুলিতে বিবেচিত হবার জন্য আমি প্রশংসা করব) সাউন্ড ট্র্যাক হিসাবে খাঁটি নীরবতা যুক্ত করছে - এতে কোনও শব্দ নেই মূল তবে টিভি সেট এটি সম্পর্কে অভিযোগ করে এবং আমি এই অভিযোগ থেকে মুক্তি পেতে চাই। আমি অডাসিটি ব্যবহার করে একটি একই দৈর্ঘ্যের (দ্বিতীয় সুনির্দিষ্ট) নীরবতা ওজিজি ভারবিস ফাইলটি তৈরি করেছি তবে আমি ভিডিওর সাথে এটি মার্জ করার ব্যবস্থা করতে পারি না:

ffmpeg -i in.mpg -i silence.ogg -c:v copy -c:a libmp3lame out.mpg

এমনকি খালি

ffmpeg -i in.mpg -c:v copy -out.mpg

"বাফার আন্ডারফ্লো" এবং "প্যাকেটটি খুব বড়" ত্রুটি দেয়। (in.mpg হ'ল একই এফএফএমপিইগ বাইনারি দ্বারা উত্পন্ন ফাইল এবং প্রশ্নের প্রথম দুটি কমান্ড ব্যবহার করে একই উত্স ডাব্লুএমভি ফাইল)।

আমি উইন্ডোজ 7 এ একটি জেরানো এফএফএমপিইগ বিল্ডটি ব্যবহার করছি।


2
কেউ আপনাকে সম্পূর্ণ আউটপুট লগের জন্য জিজ্ঞাসা করছে।
dstob

ঠিক কোন টিভি সেট? এটি এইচ .264 পড়তে সক্ষম হতে পারে, কেবল একটি আলাদা প্রোফাইল।
slhck

@ এসএলএইচসি এইচ টি সেটটি হ'ল Philips 42PFL3606H/58, আমি এইচ .264 এর সাথে এনকোড করছি ffmpeg -i "in.wmv" -sws_flags lanczos+accurate_rnd -c:v libx264 -crf 20 -preset slow -profile:v baseline -level 3.0 -pix_fmt yuv420p -tune fastdecode -x264-params keyint=240:min-keyint=20 "out.mp4"- প্রোফাইলটি আমার জানা সর্বনিম্ন এবং এরপরেও আরও বেশি টুইটগুলি ফলস্বরূপ ফাইলটি খেলানো সহজ কাজ হিসাবে ব্যবহার করতে ব্যবহৃত হয়।
ইভান

1
ম্যানুয়াল অনুসারে টিভি এমপিইজি -4 ভিজ্যুয়াল এবং এইচ .264 সমর্থন করে। যদি বেসলাইন প্রোফাইলটি কাজ না করে তবে আমি নিশ্চিত না যে কী করে। তবে টিভিগুলি খুব পিক।
18

উত্তর:


16

সমস্যাটি হ'ল এমপিইজি -2 এর জন্য ডিফল্ট বিটরেট বরং কম (এফএফএমপিতে বেশিরভাগ অন্যান্য ভিডিও এনকোডার হিসাবে, এইচ .264 এক ব্যতিক্রম) এমপিইজি -২ আজকাল কোডেক হিসাবে সেরা পছন্দও নয়।

এমপিইজি -২ এর জন্য আরও ভাল মানের

আপনি যদি এমপিইজি -২ এর সাথে থাকতে চান তবে আপনার কয়েকটি বিকল্প রয়েছে:

  • বিটরেট বাড়ান। আপনি এখন ব্যবহার করছেন -b:v 2500k। যদি এটি এইচডি ভিডিও হয় তবে আপনি কেবল 2.5 এমবিআইটি / সেকেন্ডের সাথে পাবেন না। ফলাফলটি দেখতে দেখতে আপনার কমপক্ষে দ্বিগুণ বা তারও বেশি প্রয়োজন। উদাহরণস্বরূপ, ব্যবহার করুন -b:v 6000k -target pal-dvd

    720p এর জন্য, আমি মনে করি আপনার এখনও একটি উচ্চতর বিটরেট ব্যবহার করা উচিত। মনে রাখবেন যে ডিভিডিগুলি এমপিইজি -2 ব্যবহার করে এবং 2 ঘন্টার চলচ্চিত্রের জন্য প্রায় 4.7 গিগাবাইট আসে, তাই আপনি প্রায় 5-8 এমবিট / সেকেন্ড দিয়ে শেষ করেন। এমপিইজি -২ আসলে খুব বেশি সংক্ষেপণ-দক্ষ নয় এবং উচ্চতর বিটরেটে আরও ভাল কাজ করে।

  • একটি নির্দিষ্ট মানের সেটিংস ব্যবহার করুন। পরিবর্তন -b:v …করুন -qscale:v 2। এখানে নম্বর 1 থেকে 31 এবং উচ্চতর মানে নিম্ন মানের ran 4 বা 5 এর বাইরে যাওয়ার কোনও মানে নেই you যদি আপনি 2 দিয়ে বিটরেট শুরু করার জন্য যত্নশীল না হন এবং দেখুন এটি আপনার পক্ষে কার্যকর কিনা।

বি-ফ্রেমের সংখ্যা, গতি অনুমানের পদ্ধতি বা জিওপি আকারের সাথে জগাখিচলে গুণটি কিছুটা ঝাঁকুনি দিতে পারে তবে বড় পরিবর্তন হতে পারে না।

নিরব অডিও

-f lavfi -i aevalsrc=0নীরব অডিও স্ট্রিম তৈরি করতে ব্যবহার করুন । উদাহরণ স্বরূপ:

ffmpeg -i "in.wmv" -f lavfi -i aevalsrc=0 -shortest -c:v mpeg2video -qscale:v 2 -c:a libmp3lame "out.mpg"

-target pal-dvdনির্দিষ্ট বাফার আকার জোর করতে আপনার উপরের কমান্ডটি যুক্ত করতে হতে পারে ।

আমি এমপি 3 কোডকেড হিসাবে বেছে নিয়েছি। এমপিইজি ফাইলগুলিতে এমপিইজি স্তর I এবং II অডিও পাশাপাশি পিসিএম স্ট্রিমগুলি ছাড়া আর অডিও থাকতে পারে না, সুতরাং আপনি নিরব ওগ ভার্ভিস ফাইল ব্যবহার না করে আপনি অডিও স্ট্রিমটি রূপান্তর না করে (আপনি যখন ব্যবহার করছেন তখন তা নয় -c:a copy) ।

একটি ভিন্ন ভিডিও কোডেক ব্যবহার করুন

আমি অবাক হয়েছি যে একটি টিভি ভিডিও ফাইল খেলে এমপিইজি -২ পড়বে তবে অন্য কিছু নয়। কমপক্ষে MPEG-4 পার্ট II ভিডিওটি সমর্থন করা উচিত (এটিই আপনি "ডিভএক্স" - একটি এমপিইজি -4 পার্ট II এনকোডার হিসাবে পরিচিত) know সুতরাং আপনি চেষ্টা করতে পারেন:

ffmpeg -i "in.wmv" -f lavfi -i aevalsrc=0 -shortest -c:v libxvid -qscale:v 2 -c:a libmp3lame "out.mp4"

আপনার টিভি আসলে H.264 সমর্থন করতে পারে, তবে কেবলমাত্র একটি নির্দিষ্ট প্রোফাইল। baselineপ্রোফাইলটি ব্যবহার করে দেখুন , উদাহরণস্বরূপ:

ffmpeg -i "in.wmv" -f lavfi -i aevalsrc=0 -shortest -c:v libx264 -profile:v baseline -crf 23 -c:a aac -strict experimental "out.mp4"

উপরের উদাহরণে আমি সিআরএফ বিকল্পটি পরিবর্তে মান নির্ধারণ করতে ব্যবহার করেছি qscale। আরও জন্য H.264 এনকোডিং গাইড দেখুন।


"বি-ফ্রেমের সংখ্যা, গতি অনুমানের পদ্ধতি বা জিওপি আকারের সাথে জগাখিচিতে গুণটি কিছুটা ঝাঁকুনিতে পারে তবে বড় পরিবর্তন হতে পারে না" " - আমি কি কেবল প্রতিটি ফ্রেমকে একটি বি-ফ্রেম বানাতে পারি এবং এমপিইজি 2 দিয়ে কোনও গতির প্রাক্কলন ব্যবহার করতে পারি না? ভিডিওটিতে প্রচুর প্রচুর গতিশীল অংশ রয়েছে।
ইভান

আপনার প্রস্তাবিত প্রথম কমান্ড লাইনটি চেষ্টা করেছি ( ffmpeg -i "in.wmv" -f lavfi -i aevalsrc=0 -shortest -c:v libxvid -qscale:v 2 -c:a libmp3lame "out.mp4") - এটি প্রায় 100 ফ্রেম এনকোড করে এবং এরপরে [mpeg @ 02f69ba0] buffer underflow i=0 bufi=235538 size=239761এবং এর মতো ত্রুটিগুলি দিয়ে পর্দা প্লাবিত করা শুরু করে [mpeg @ 02f69ba0] packet too large, ignoring buffer limits to mux it
ইভান

@ ইভান আপনি বিটরেট এর সাথে পরিবর্তন করুন -b:v। এটি আমার উত্তরে যুক্ত হয়েছে। এনকোডার সেটিংস সম্পর্কিত: আপনি প্রতিটি ফ্রেমকে একটি বি-ফ্রেম বানাতে পারবেন না। এছাড়াও, আপনার গতির প্রাক্কলন প্রয়োজন - পদ্ধতিটি যত বেশি পরিস্কার, ততই কম সংক্ষেপণ। তবে এটি যদি একটি গতিশীল ভিডিও হয় তবে প্রথম যেটি আপনি চান সেটি হ'ল বিটরেটকে উল্লেখযোগ্যভাবে বাড়ানো। এনকোডিং সেটিংসটিতে আসলে খুব বেশি প্রভাব নেই। আপনার ত্রুটি হিসাবে, আপনি কি নিশ্চিত যে এটি সঠিক কমান্ডের ত্রুটি? একটি [mpeg]ত্রুটি শুধুমাত্র যদি আপনার আউটপুট ফাইল ঘটতে পারে .mpg, যখন না এটা .mp4
slhck

আমি অনুলিপি = একটি ভুল অংশ পেস্ট করেছেন, @ এসএলএইচএইচ, আমি অবশ্যই ব্যবহার করছি ffmpeg -i "in.wmv" -f lavfi -i aevalsrc=0 -shortest -c:v mpeg2video -qscale:v 2 -c:a libmp3lame "out.mpg"
ইভান

1
-target pal-dvdসমস্যা সমাধান করে, -bufsizeকাজ করে না (চেষ্টা করেছি -b:v 7M -bufsize 7M -maxrate 7M)।
ইভান

0

আমি তাত্ক্ষণিকভাবে বলব যদি ফাইল-আকারটি সত্যিই গুরুত্বপূর্ণ না হয় তবে কেবল বিট-রেট বাড়ানোর জন্য পরীক্ষা করুন।

নিঃশব্দ অডিওর জন্য আপনি কেবল ffmpeg ব্যবহার করতে চাইতে পারেন, আমি কোনও ধরণের মন্তব্য দেওয়ার জন্য অড্যাসিটি সম্পর্কে যথেষ্ট জানি না। আমি এটি আগে ব্যবহার করেছি।

ffmpeg.exe -f lavfi -i aevalsrc=0:0::duration=YOUR_DESIRED_DURATION -ab 10k YourAudioName.aac

যদিও আপনি এমপিজি ধারক ব্যবহার করছেন তাই এটি আপনার পক্ষে কাজ করবে না তাই আপনি চেষ্টা করতে পারেন ((এমপি 3 ধারক)

ffmpeg.exe -f lavfi -i aevalsrc=0:0::duration=YOUR_DESIRED_DURATION -ab 10k YourAudioName.mp3

এটা আমার জন্য কাজ বলে মনে হয়েছিল।


সময়কাল নির্ধারণ করা প্রয়োজনীয় নয়, কারণ ffmpeg কেবল ভিডিওর জন্য প্রয়োজনীয় যা ব্যবহার করবে।
14hhck করুন

ইভান যেমন করেছিলাম তেমন দুটি পদক্ষেপের প্রক্রিয়াতে রেখেছি। আপনি যদি আমার কমান্ডের সময়সীমাটি বাদ দেন তবে ffmpeg কতক্ষণ চলবে তা আমি জানি না (সম্ভবত আপনি যা চান তার চেয়ে বেশি দিন)।
dstob
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.