আমি কীভাবে ffmpeg এর এফপ্লেতে পাইপ আউটপুট পাই?


22

আমি ffmpeg এর আউটপুট ffplay পাইপ করতে পারেন?

এই মুহুর্তে আমি ব্যাশে একটি কার্যকরী ব্যবহার করছি:

mkfifo spam
(ffplay spam 2> /dev/null &) ; capture /dev/stdout | ffmpeg -i - spam

উত্তর:


18

আমি জানি না ffmpegযে এটি এটির ডেটা স্টাডআউটে আউটপুট করতে পারে না, বা ffplayস্ট্যান্ডিন থেকে এটির ইনপুট নিতে পারে না।

যদি এটি হয় ffmpegযে এটি ডেটা স্টাডাউটে আউটপুট করতে পারে না:

capture /dev/stdout | ffmpeg -i - >(ffplay 2> /dev/null)

(আপনার স্থানান্তরিত করার জন্য একটি -যুক্তি যুক্ত করা দরকার ffplayযাতে এটি স্ট্যান্ডিনের থেকে ইনপুট নেয় takes)

যদি এটি ffplayস্ট্যান্ডিন থেকে এটির ইনপুট নিতে না পারে:

ffplay <(capture /dev/stdout | ffmpeg -i -) 2> /dev/null

<(command)এবং >(command)নির্মাণ সম্পর্কে আরও তথ্যের জন্য, ব্যাশ ম্যানুয়ালটির প্রক্রিয়া সাবস্টিটিউশন বিভাগটি দেখুন।


4
আমার জন্য এটি "-f" দিয়ে আউটপুট ফর্ম্যাটটি স্পষ্টভাবে উল্লেখ না করে কাজ করে নি। ffmpeg.org/ffmpeg.html তে উল্লিখিত হিসাবে : "ফর্ম্যাটটি সাধারণত ইনপুট ফাইলগুলির জন্য স্বয়ংক্রিয়ভাবে সনাক্ত হয় এবং আউটপুট ফাইলগুলির জন্য ফাইল এক্সটেনশান থেকে অনুমান"। প্রদত্ত উত্তরে ffmpeg আউটপুট ফর্ম্যাটটি অনুমান করতে সক্ষম হবে না। সুতরাং আমার মনে হয় ffmpeg এর সাথে "-f fmt" যুক্ত হওয়া উচিত।
পাভেল কে।

1
ffmpeg 2.8.6 অন্যান্য উত্তরে উল্লিখিত হিসাবে স্টিডিন ইনপুট সমর্থন করে। আপনি এই সহায়তার জন্য চেক করতে পারেন: stackoverflow.com/questions/12999674/…
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

17
ffmpeg -i input.avi <options> -f matroska - | ffplay -

কাজ করবে; আউটপুট জন্য আপনার একটি ধারক বিন্যাস সেট করতে হবে। আপনি সাধারণত আউটপুটটি যে এক্সটেনশানটি দেন তা দেখে এফএমপেইগের সাথে এটি সাধারণত সেট করা থাকে তবে এখানে আপনাকে এটি ম্যানুয়ালি সেট করতে হবে -f। আমি ম্যাট্রোস্কা (এমকেভি) প্রস্তাব দিচ্ছি কারণ এতে প্রায় কোনও ভিডিও থাকতে পারে, তাই আপনি যা কিছু ট্রান্সকোড করছেন তা পুরোপুরি ভালভাবে কাজ করা উচিত।

মনে রাখবেন যে আপনি যদি উবুন্টু 12.04 ব্যবহার করছেন, ffmpeg লিবাভ কাঁটাচামচ দ্বারা প্রতিস্থাপিত হয়েছে, এবং আপনার ব্যবহার করা উচিত avconvএবং avplayপরিবর্তে; বাক্যবিন্যাস অন্যথায় অভিন্ন। সেখানে একটি ধরণের ffmpeg আছে, কিন্তু এটি ডিজাইন দ্বারা পঙ্গু।


উইন 10: pipe:: Invalid data found when processing inputKপাওয়ার শেলের মতো ত্রুটি দেখা দেয় , তবে কমান্ড প্রম্পটে ভাল কাজ করে
জন

11

ffmpeg পাইপিং ক্রিয়াকলাপ সমর্থন করে। ডকুমেন্টেশনের সেই বিভাগটি এখানে দেখুন

Ffplay কীভাবে কাজ করে তা আমি জানি না, তবে ffmpeg এর আউটপুটটিকে স্ট্যান্ডার্ড আউটপুটে পাইপ করতে আপনি ffmpeg কমান্ডের শেষে পাইপ কমান্ডটি যুক্ত করতে পারেন। উদাহরণ:

ffmpeg -i input.flv pipe:1 | ffplay -i -

1
ধন্যবাদ, আমি কোনওভাবে ম্যান পৃষ্ঠাগুলির সেই অংশটি মিস করেছি .. তবে আমি এই কনস্ট্রাক্টটি কাজ করতে পারি না, আউটপুট ফাইলের নামটি ffmpeg থেকে অপসারণ করতে হবে এবং ffplay আরোগুলিতে ইনপুট পাইপ যুক্ত করা উচিত। আমি সেই অনুযায়ী আপনার পোস্ট সম্পাদনা করব ..
wim

ধন্যবাদ। যেমনটি আমি বলেছি, আমি আগে কখনও এফএফপ্লে ব্যবহার করি নি, তবে আমি ffmpeg জানি।
matzahboy

আমার মধ্যে man ffplay, আমি স্যুইচটিকে ffplayসমর্থন করতে দেখছি না -i- এটি কি ffmpegকেবলমাত্র সম্ভব?
sdaau

1
pipe:1বনাম -? -ffmpeg 2.8.6 এ কাজ করে।
সিরো সান্তিলি 新疆 改造 中心 法轮功 六四 事件

9

সাধারণ পাইপগুলির মতো কাজ করে (কমপক্ষে উইন্ডোতে):

ffmpeg -i sintel.mpg -pix_fmt yuv420p -f rawvideo - | ffplay -f rawvideo -pix_fmt yuv420p -s 720x480 -

যদিও আরও জটিল ইনপুট / আউটপুট দিয়ে এটি চেষ্টা করে দেখেনি ...

ffmpeg -f dshow -i video=screen-capture-recorder -pix_fmt yuv420p -f mpegts - | ffplay -analyzeduration 10 -f mpegts -

কিছুটা দ্রুত শুরু হয়


5
আমি পাচ্ছিলাম Unable to find a suitable output format for 'pipe:'- আমার সাথে একটি কোডেক নির্দিষ্ট করা দরকার -f
i336_

কাজ করে, তবে খুব কম চিত্রের গুণমান
জন

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