কেন এফএফপিপিগের দ্বারা এনকোডড মুভি ফাইল কুইকটাইম প্লে করতে পারে না? [প্রতিলিপি]


34

আমি যখন সবেমাত্র কমান্ডটি দিয়ে তৈরি একটি সিনেমা খোলার চেষ্টা করি:

ffmpeg -pattern_type glob -i '*.JPG' -s 640x480 movie.mp4

আমি কুইকটাইম থেকে একটি ত্রুটি পেয়েছি:

The document “movie.mp4” could not be opened.
The file may be damaged or may not be a movie file that is compatible with QuickTime Player.

আমি একই আইটেমটি আইসাইট টাইম ল্যাপস থেকে উত্পন্ন ইমেজের সেটগুলিতে ব্যবহার করেছি, তবে এই ক্ষেত্রে উপরের চিত্রগুলি ডিজিটাল ক্যামেরা থেকে। রেজোলিউশনটি অনেক বেশি, তবে আমি এটি 640x480 এ স্কেল করছি এবং আউটপুটে এমন কোনও কিছুই দেখছি না যা সমস্যার প্রস্তাব দেয়:

Input #0, image2, from '*.JPG':
  Duration: 00:00:04.76, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: mjpeg, yuvj422p(pc), 4928x3264, 25 tbr, 25 tbn, 25 tbc

ভার্চিং মুভি:

Input #0, image2, from '*.JPG':
  Duration: 00:01:23.72, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: mjpeg, yuvj420p(pc), 640x480 [SAR 1:1 DAR 4:3], 25 fps, 25 tbr, 25 tbn, 25 tbc

এবং আউটপুট জন্য:

Output #0, mp4, to 'movie.mp4':
  Metadata:
    encoder         : Lavf55.19.104
    Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuvj422p, 640x480, q=-1--1, 12800 tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg -> libx264)

কার্যকারীটির জন্য বনাম:

Output #0, mp4, to 'movie.mp4':
  Metadata:
    encoder         : Lavf55.19.104
    Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuvj420p, 640x480 [SAR 1:1 DAR 4:3], q=-1--1, 12800 tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg -> libx264)

কাজের সিনেমাটি দীর্ঘতর হওয়া এবং একটি নিম্ন উত্সের রেজোলিউশন বাদে, আমি কেবলমাত্র পার্থক্যটি দেখতে পাচ্ছি যে ভিডিও স্ট্রিমে উল্লিখিত একটি অতিরিক্ত "[এসএআর 1: 1 ডিআর 4: 3]" রয়েছে তবে আমার কী ধারণা নেই এটি কী হয়, বা কীভাবে এটি নিষ্ক্রিয় সিনেমাতে জোর করার চেষ্টা করা যায়।

আপডেট: আমি সবেমাত্র ভিএলসি ডাউনলোড করেছি এবং এটি মুভিটি দুর্দান্ত অভিনয় করে। সুতরাং আমি জানি ffmpeg এখানে ভুল হয় না।


2
ভবিষ্যতের জন্য, ffmpeg সম্পর্কে জিজ্ঞাসা করার সময়, দয়া করে সর্বদা পূর্ণ, অব্যক্ত কমান্ড লাইন আউটপুট অন্তর্ভুক্ত করুন। পিক্সেল ফর্ম্যাটটি কিছু খেলোয়াড়ের সাথে সামঞ্জস্যপূর্ণ না হওয়ার বিষয়ে আপনাকে কিছু বলা উচিত ছিল, যদি আমি ভুল না করি (এবং আপনার যদি সাম্প্রতিক সংস্করণ থাকে)।
slhck

ffprobe video.mp4কোন পিক্সেল ফর্ম্যাটটি ব্যবহৃত হচ্ছে তা পরীক্ষা করতে ব্যবহার করা যেতে পারে।
l --marc l

উত্তর:


47

এই স্ট্যাকওভারফ্লো উত্তরের উপর ভিত্তি করে আমি -pix_fmt yuv420pআপনার আদেশটি এভাবে যুক্ত করব; মন্তব্যগুলির মধ্যে একটির-vcodec libx264 পাশাপাশি যুক্ত করার বিষয়টি উল্লেখ করা হয়েছে যাতে এটি এখানে অন্তর্ভুক্ত করা হয়:

ffmpeg -pattern_type glob -i '*.JPG' -vcodec libx264 -s 640x480 \
-pix_fmt yuv420p movie.mp4

অথবা আপনি ফর্ম্যাট ফিল্টার ব্যবহার করতে পারে । এই উদাহরণটি পরিবর্তে স্কেল ফিল্টার-s এবং পরিবর্তে ফর্ম্যাট ফিল্টার ব্যবহার করবে -pix_fmt:

ffmpeg -pattern_type glob -i '*.JPG' -vcodec libx264 \
-vf scale=640:-2,format=yuv420p movie.mp4

এছাড়াও সরকারী FFmpeg উইকি উপর বিস্তারিত শিরোনাম "বোবা খেলোয়াড়দের জন্য এনকোডিং" এর অধীনে; জোর খনি:

-pix_fmt yuv420pকুইকটাইম এবং বেশিরভাগ অন্যান্য খেলোয়াড়গুলিতে কাজ করার জন্য আপনার আউটপুটটির জন্য আপনার প্রয়োজন হতে পারে । এই প্লেয়ারগুলি কেবল এইচ .264 ভিডিওর জন্য 4: 2: 0 ক্রোমা সাবম্পলিংয়ের সাথে কেবল YUV প্ল্যানার রঙের স্থান সমর্থন করে। অন্যথায়, আপনার উত্সের উপর নির্ভর করে, ffmpeg পিক্সেল ফর্ম্যাটে আউটপুট দিতে পারে যা এই প্লেয়ারগুলির সাথে সঙ্গতিপূর্ণ নয়।


6
প্রকৃতপক্ষে, ffmpeg yuv422p এর ডিফল্ট এনকোডিংটি বেছে নিয়েছিল যা কুইকটাইমকে বিরক্ত করেছিল। যুক্ত -pix_fmt yuv420pকরা আমার জন্য এটি সমাধান!
নিক দেশাউলনিয়ার্স

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