ইনপুট হিসাবে চিত্র ফাইলগুলির সাথে ffmpeg ইনপুট বিকল্পের জন্য স্পষ্টতা


34

আমার কিছু চিত্র আছে এবং আমি ffmpeg সহ একটি অ্যানিমেটেড জিএফ তৈরি করতে চাই। ছবিগুলির নাম রয়েছে:

837_1.png
838_1.png
...

আমি ffmpeg -i কমান্ড লাইন বিকল্পটি আনসারস্ট্যান্ড করার চেষ্টা করছি তবে আমি কিছু সমস্যার মুখোমুখি হচ্ছি।

আমি যদি কিছু নির্দিষ্ট না করি তবে এটি আমাকে ফাইলগুলি প্রতিস্থাপন করতে বলে:

ffmpeg -i * -vcodec libx264 out.mp4

ffmpeg version 1.2.1 Copyright (c) 2000-2013 the FFmpeg developers
  built on Jul 26 2013 20:18:03 with Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/1.2.1 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=cc --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid
  libavutil      52. 18.100 / 52. 18.100
  libavcodec     54. 92.100 / 54. 92.100
  libavformat    54. 63.104 / 54. 63.104
  libavdevice    54.  3.103 / 54.  3.103
  libavfilter     3. 42.103 /  3. 42.103
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  2.100 / 52.  2.100
Input #0, image2, from '358_1.png':
  Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: png, rgb24, 550x550, 25 tbr, 25 tbn, 25 tbc
File '359_1.png' already exists. Overwrite ? [y/N]

এবং যদি আমি ইন্টারনেটে সর্বাধিক ব্যবহৃত বিন্যাস (% d) ব্যবহার করার চেষ্টা করি .. ffmpeg ফাইলগুলি খুঁজে পায় না:

fmpeg -i '%3d_1.png' -vcodec libx264 out.mp4

ffmpeg version 1.2.1 Copyright (c) 2000-2013 the FFmpeg developers
  built on Jul 26 2013 20:18:03 with Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/1.2.1 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=cc --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid
  libavutil      52. 18.100 / 52. 18.100
  libavcodec     54. 92.100 / 54. 92.100
  libavformat    54. 63.104 / 54. 63.104
  libavdevice    54.  3.103 / 54.  3.103
  libavfilter     3. 42.103 /  3. 42.103
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  2.100 / 52.  2.100
[image2 @ 0x7f963a006600] Could find no file with with path '%3d_1.png' and index in the range 0-4
%3d_1.png: No such file or directory

সুতরাং .. এখানে প্রশ্ন, ffmpg সহ -i কমান্ড লাইন বিকল্পটি কীভাবে ব্যবহার করবেন?

স্পষ্টতার জন্য, আমি ম্যাক ওএসএক্স 10.8, এফএফএমপিগ সংস্করণ 1.2.1, জেডএস 4.3.11 এ আছি

উত্তর:


47

অন্য কোনও বিকল্প ছাড়াই, ffmpeg এর image2ডেমাক্সার 0 দিয়ে শুরু হওয়া সিকোয়েন্সটি সন্ধান করবে It এটি ডিফল্ট পরিসীমা 5 এর সাথে এই সূচীটিও পরীক্ষা করে নেবে (এজন্য এটি 0-4 পরিসরের কোনও সূচক সম্পর্কে অভিযোগ করবে না)। প্রতি ডকুমেন্টেশন , আপনি শুরু নম্বর সেট যদি আপনি 837 মত একটি অবাধ সূচিতে শুরু করার জন্য চান না।

ffmpeg -start_number 837 -i '%3d_1.png' -c:v libx264 out.mp4

PNG- এ রঙের স্থানটি H.264 রূপান্তর করতে

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

ffmpeg -start_number 837 -i '%3d_1.png' -c:v libx264 -pix_fmt yuv420p out.mp4

মান নিয়ন্ত্রণ করতে, -crfবিকল্পটি ব্যবহার করুন । দেখুন x264 এনকোডিং নির্দেশিকা আরও তথ্যের জন্য।

*গ্লোব কেন কাজ করে না

*ইনপুট বিকল্প হিসাবে ব্যবহার করবেন না । শেলটি বর্তমান ডিরেক্টরিটি দেখার আগে এটি সমস্ত ফাইলগুলিতে প্রসারিত করবে ffmpeg, সুতরাং কমান্ডটি প্রসারিত হবে ffmpeg -i file1 file2 … filen। যেহেতু সমস্ত ইনপুট ফাইলগুলির বিকল্পের ffmpegপ্রয়োজন রয়েছে -i, এটি file2 … filenআউটপুট ফাইল হিসাবে গ্রহণ করবে এবং সেগুলি ওভাররাইট করে। ভাল না.


খুব সম্পূর্ণ উত্তর! এবং আপনার অ্যানিমেটেড জিআইএফ সম্পর্কে কিছু পরামর্শ আছে?
nkint

অ্যানিমেটেড জিআইএফ-এর জন্য, আপনি ffmpeg সংস্করণ ২.০ বা তারপরের সংস্করণে আপডেট করতে চান, কারণ তারা ভিজ্যুয়াল মানের উন্নত করেছে। ডাউনলোড স্ট্যাটিক তৈরী করে থেকে OS X এর জন্য পুরোনো ffmpeg জন্য পৃষ্ঠাতে কিছু লিঙ্ক আছে, দেখুন: ffmpeg ধর্মান্তরিত .flv সঙ্গে ভয়াবহ মানের .gif ভিডিও
slhck

প্রকৃতপক্ষে, এটি কেবল + 0..4 নয় 8,16,32,64 ইত্যাদি পরীক্ষা করে। এইচটিটিপি ইউআরএল ব্যবহার করার সময় এটি লক্ষণীয়। তবে এটি "ফাইল পাওয়া গেছে" এর সমতুল্য image2তা সনাক্ত করতে ব্যর্থ হয় 200 OKতাই এটি অনুসন্ধান বন্ধ করে দেয় না।
এমএসএলটাররা

1
আপনার পরামর্শগুলি বাস্তবায়নের চেষ্টা করার পরেও আমি একই জিনিস পাচ্ছি। আমার ফাইলগুলির নাম দেওয়া হয়েছে DSCxxxxx.jpgযেখানে xxxxxশূন্য দিয়ে শুরু হওয়া 5-অঙ্কের নম্বর (নোট আমার কোনও আন্ডারস্কোর নেই)। তবুও, চালানোর পরে ffmpeg -r 30 -start_number 04606 -i DSC%d.jpg out.mp4আমি উপরের মূল পোস্টে একই ত্রুটি পেয়েছি
বেনামে

@ jphollowed আপনি ফাইলের নামের ধরণটি উদ্ধৃতিতে রেখেছেন?
slhck

29

গ্লোববিং নির্দিষ্টকরণ -pattern_type globবিকল্প দ্বারা সক্ষম করা যেতে পারে :

ffmpeg -pattern_type glob -i '*.png' -vcodec libx264 out.mp4

2
আরও অনেক ভাল উপায় :)
গুস্তাভ

3
এটি কেবল আমার জন্য কাজ করেছিল। কোন পথে এই পেতে xxx%d.png, xxx%3d.png, 'xxx%d.png'বা 'xxx%3d.png'জিনিস কাজ
yPhil

এটি চেষ্টা করার পরেও আমি একই ত্রুটি পেয়েছি:[image2 @ 0x2552560] Could find no file with path '*.jpg' and index in the range 0-4 *.jpg: No such file or directory
বেনামে

প্যাটার্নের ধরণের 'গ্লোব' নির্বাচন করা হয়েছিল তবে গ্ল্যাববিং এই লিবাভা ফর্ম্যাট বিল্ড দ্বারা সমর্থিত নয় [উইন্ডোজ ffmpeg ব্যবহার করে] [ওফ, একটি উত্তর নিচে স্ক্রোল করা উচিত]
ক্যাটাস্টিক ভয়েজ

7

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

আপনি একটি সাধারণ পাওয়ারশেল কমান্ড লাইনের সাথে তাদের নাম পরিবর্তন করতে পারেন:

dir *.jpg | %{$x=0} {Rename-Item $_ -NewName “Base$x”; $x++ }

এই ফিরে আসবে file1.jpg file2.jpg... file10.jpgযদি আপনি সাজানোর বর্ণানুক্রমে শেষ পর্যন্ত হবে যা file1.jpg, file10.jpg...file2.jpg
stib

এটি কি বেস $ x.jpg হওয়া উচিত নয়? যেমনটি হ'ল, আপনার সমস্ত নাম পরিবর্তন করে ফাইল এক্সটেনশনগুলি মেরে ফেলেছে।
ক্যাটাস্টিক ভয়েজ

5

পাওয়ারশেলের সাথে নাম বদলের আরও ভাল উপায় (অর্ডার সংরক্ষণ করুন):

dir *.jpg | %{$x=0} {Rename-Item $_ -NewName "Base$($x.tostring('000000')).jpg"; $x++ }

dirবর্ণগুলি অনুসারে বাছাই করা ফাইলগুলি কি সর্বদা ফিরে আসে? sort-objectমিশ্রণটিতে একটি যুক্ত করা কি নিরাপদ হবে ?
0-05
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.