ffmpeg টাইম ল্যাপস "ওভাররাইট" ত্রুটি - একটি গ্লোব্বিং / শেল সমস্যা হতে পারে?


1

আমার সাধারণ এফএফএমপিইজি স্ক্রিপ্ট হওয়া উচিত বলে আমি কিছুটা সমস্যা করছি। আমি কেবল একটি প্রদত্ত ডিরেক্টরিতে সমস্ত jpg ফাইল নেওয়ার চেষ্টা করছি এবং একটি সময় বিভক্ত ভিডিওতে সেগুলি পূরণ করব। আমি সমস্ত এনকোডার বিকল্প এবং এফএফএমপিগে থাকা স্টাফ দিয়ে আরামদায়ক, তবে সিনট্যাক্সটি ঠিক মতো পাবে বলে মনে হচ্ছে না।

যে লাইনে আমি চেষ্টা করছি (হ্যাঁ, আমি জানি ... "উচিত") ডিরেক্টরিতে সমস্ত .JPG চিত্র নেবে এবং এটিকে "আউট এমপি 4" হিসাবে এনকোড করে। তবে আপনি যদি নীচের দিকে তাকান তবে আমি যা পাই তা হ'ল GOPR3974.JPG- র ওভাররাইট করার জন্য একটি প্রম্পট - যা ডিরেক্টরিতে দ্বিতীয় ফাইল। এটি বোঝায় যে কোনও কারণে এটি সমস্ত ফাইলকে সঠিকভাবে গ্লোব করছে না ... আমি একক উদ্ধৃতি, ডাবল উদ্ধৃতি চেষ্টা করেছি, চেষ্টা করেছি

ffmpeg -i GOPR%04d.JPG out.mp4

সুতরাং কিছু আছে যে কাজ করে। যদি এটি গুরুত্বপূর্ণ হয় তবে এটিকে ব্যাশ ব্যবহার করে একটি সাইগউইন পরিবেশে চালানো হচ্ছে ...

[lwobker:/dtop/hack]$ /usr/local/bin/ffmpeg.exe -i GOPR*.JPG out.mp4
ffmpeg version N-64919-ga613257 Copyright (c) 2000-2014 the FFmpeg developers
  built on Jul 23 2014 00:35:22 with gcc 4.8.3 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads
--enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r
--enable-gnutls --enable-iconv --enable-libass --enable-libbluray
--enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme
--enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame
--enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
--enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr
--enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab
--enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis
--enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264
--enable-libx265 --enable-libxavs --enable-libxvid --enable-decklink
--enable-zlib
  libavutil      52. 92.101 / 52. 92.101
  libavcodec     55. 69.100 / 55. 69.100
  libavformat    55. 48.101 / 55. 48.101
  libavdevice    55. 13.102 / 55. 13.102
  libavfilter     4. 11.102 /  4. 11.102
  libswscale      2.  6.100 /  2.  6.100
  libswresample   0. 19.100 /  0. 19.100
  libpostproc    52.  3.100 / 52.  3.100
Input #0, image2, from 'GOPR3973.JPG':
  Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: mjpeg, yuvj422p(pc, bt470bg), 1920x1440 [SAR 72:72 DAR
4:3], 25 tbr, 25 tbn, 25 tbc
File 'GOPR3974.JPG' already exists. Overwrite ? [y/N]

উত্তর:


4

পদ্ধতি 1: ক্রম নিদর্শন ব্যবহার করুন

আপনার প্রথম চিত্রটি যদি বলা হয় তবে আপনার যা প্রয়োজন তা হ'ল GOPR0001.JPG:

ffmpeg.exe -i "GOPR%04d.JPG" -pix_fmt yuv420p out.mp4

অথবা যদি প্রথম চিত্রটি কল করা হয় GOPR3973.JPG, আপনাকে সন্ধানের জন্য শুরু নম্বরটি ffmpeg দিতে হবে:

ffmpeg.exe -start_number 3973 -i "GOPR%04d.JPG" -pix_fmt yuv420p out.mp4

পদ্ধতি 2: গ্লোব্বিং নিদর্শনগুলি ব্যবহার করুন

যদি আপনার ffmpeg সংস্করণটির গ্লোববিংয়ের জন্য সমর্থন থাকে (যা উইন্ডোজ তৈরি করে না, আমার মনে হয়), তবে আপনি কেবল তা করতে পারেন:

ffmpeg.exe -pattern_type glob -i "GOPR*.JPG" -pix_fmt yuv420p out.mp4

আপনি যদি প্রারম্ভিক নম্বরটি জানেন না বা সঠিকভাবে নিয়ন্ত্রণের জন্য যত্ন না রাখেন তবে এটি পছন্দ করা হয় preferred

কেন এটি কাজ করে না

ffmpeg.exe -i GOPR*.JPG out.mp4

এটি কাজ করে না কারণ এটি এর মতো কিছুতে প্রসারিত হবে (ধরে নেওয়া আপনার প্রথম চিত্রটিকে ধরে নেওয়া হয় GOPR0001.JPG):

ffmpeg.exe -i GOPR0001.JPG GOPR0002.JPG  out.mp4

যেহেতু ffmpeg সর্বশেষ নামবিহীন আর্গুমেন্ট বিকল্পটি (যেমন অগ্রণী ব্যতীত কিছু নয় -) আউটপুট ফাইলের নাম হিসাবে বিবেচনা করে, আউটপুট GOPR2.JPGহবে এবং যতক্ষণ out.mp4না কিছু প্রয়োগ করা হবে না।

কিছু ইঙ্গিত

  • -pix_fmt yuv420pজেপিজির YUV 4: 2: 2 কালার স্পেস থেকে 4: 2: 0 সাব্পলিংয়ে রূপান্তর করতে হবে। অন্যথায়, কিছু (সর্বাধিক- FFmpeg- ভিত্তিক) প্লেয়ার ভিডিওটি দেখাতে সক্ষম হবে না

  • -crf 23বিকল্পটি সেট করে , এবং 18 এবং 28 এর মধ্যে এমন কিছু চয়ন করে মানের নিয়ন্ত্রণ করুন , যেখানে নিম্ন মানে আরও ভাল মানের।

  • আপনি ফ্রেমরেট সেট করতে চাইতে পারেন যা অনুযায়ী ইনপুট ফ্রেমগুলি (চিত্রগুলি) ক্যাপচার করা হয়েছিল। দৌড় দিয়ে এটি করুন ffmpeg.exe -framerate 30 -start_number …। যদি আপনি ফ্রেমরেট নির্দিষ্ট না করেন তবে ffmpeg ধরে নিবে যে আপনার আসল ফ্রেমগুলি 25 Hz রেকর্ড করা হয়েছিল।

  • ম্যানুয়ালটির image2ডেমাক্সার অংশটি পড়ুন ।

  • নিদর্শনগুলির শেল প্রসার রোধ করতে ডাবল উদ্ধৃতিগুলি সর্বদা ব্যবহার করা ভাল।

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