লিনাক্সে কমান্ড-লাইন ভিডিও সম্পাদনা (কাটা, যোগদান এবং পূর্বরূপ)


32

আমার পরিবর্তে সাধারণ সম্পাদনা প্রয়োজন রয়েছে - আমার কয়েকটি ভিডিও কাটাতে হবে, সম্ভবত তাদের মধ্যে কিছু পিএনজি ,োকাতে হবে এবং এই ভিডিওগুলিতে যোগ দিন (ট্রানজিশন, প্রভাব ইত্যাদির প্রয়োজন নেই)। মূলত, pitiviআমি যা চাই তা করতে চাই - বাদে, আমি একটি ক্যামেরা থেকে 640x480 30 fps এভিআই ব্যবহার করি এবং এই ধরণের উপাদানটির কয়েক মিনিটের মধ্যে রেখে আমি pitiviপূর্বরূপে জমাট বাঁধতে শুরু করি এবং এভাবে অকেজো হয়ে যায়।

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

 

মূলত, আমি কল্পনা করতাম যে কোনও এনকোডার এবং প্লেয়ারের সরঞ্জাম রয়েছে ( ffmpegবনাম ffplay; বা mencoderবনাম mplayer) - যেমনটি শুরু করার জন্য সম্পাদনা ক্রমটি সরাসরি কমান্ড লাইনে নির্দিষ্ট করা যেতে পারে, বিশেষত ফ্রেম রেজোলিউশনের সাথে - একটি সিউডোকোডের মতো দেখাবে:

videnctool -compose --file=vid1.avi --start=00:00:30:12 --end=00:01:45:00 --file=vid2.avi --start=00:05:00:00 --end=00:07:12:25 --file=mypicture.png --duration=00:00:02:00 --file=vid3.avi --start=00:02:00:00 --end=00:02:45:10 --output=editedvid.avi

... বা, এটিতে একটি "প্লেলিস্ট" পাঠ্য ফাইল থাকতে পারে:

vid1.avi      00:00:30:12 00:01:45:00 
vid2.avi      00:05:00:00 00:07:12:25 
mypicture.png -           00:00:02:00
vid3.avi      00:02:00:00 00:02:45:10 

... তাই এটি দিয়ে বলা যেতে পারে

videnctool -compose --playlist=playlist.txt --output=editedvid.avi

এখানে ধারণাটি হ'ল সমস্ত ভিডিও একই বিন্যাসে রয়েছে - সরঞ্জামটিকে ট্রান্সকোডিং এড়ানোর অনুমতি দেয় এবং পরিবর্তে একটি "কাঁচা অনুলিপি" করুন (যেমন mencoder"এর অনুলিপি কোডেক:" -oac copy -ovc copy") - বা এর অভাবে, সঙ্কুচিত অডিও / ভিডিও ঠিক থাকবে (যদিও এটি কিছুটা জায়গা খায়)। স্থির চিত্রের ক্ষেত্রে, সরঞ্জামটি ভিডিও ফাইলগুলির দ্বারা সেট করা এনকোডিংটি ব্যবহার করবে।

 

জিনিসটি হ'ল আমি এ পর্যন্ত দেখতে পাচ্ছি mencoderএবং ffmpegপৃথক ফাইলগুলিতে অপারেট করতে পারি; উদাহরণস্বরূপ, একটি একক ফাইল থেকে একটি বিভাগ কাটা, বা ফাইলগুলিতে যোগ দিন ( mencoderএছাড়াও ফ্রেম-হুটো কাটিং করতে ব্যবহার করা যেতে পারে এমন সিদ্ধান্তের তালিকাগুলি (EDL) রয়েছে - যাতে আপনি একাধিক কাট অঞ্চলগুলি সংজ্ঞায়িত করতে পারেন, তবে এটি আবার কোনও একক ফাইলের জন্য দায়ী )। যা বোঝায় যে আমাকে প্রথমে পৃথক ফাইলগুলি থেকে টুকরো কেটে কাজ করতে হবে (যার প্রত্যেকটিতেই ডিস্কে নিজের অস্থায়ী ফাইল দাবি করা হবে), এবং তারপরে একটি চূড়ান্ত ভিডিও ফাইলে তাদের যোগদান করা উচিত।

আমি তখন কল্পনা করব, এটি সম্পর্কিত প্লেয়ারের একটি সরঞ্জাম রয়েছে, যা একই কমান্ড লাইন বিকল্প বিন্যাস / প্লেলিস্ট ফাইলটি এনকোডিং সরঞ্জাম হিসাবে পড়তে পারে - এটি কোনও আউটপুট ফাইল তৈরি করে না, বরং ভিডিওটি প্লে করে; যেমন সিউডোকোডে:

vidplaytool --playlist=playlist.txt --start=00:01:14 --end=00:03:13

... আর, সেখানে পর্যাপ্ত মেমরি এর দেওয়া, এটা RAM- র মধ্যে একটি নিম্ন মাঝামাঝি ভিডিও পূর্বরূপ, যখন কিছু সীমাবদ্ধ পারস্পরিক ক্রিয়া (মত প্রস্তাব উৎপন্ন হবে, এবং একটি উইন্ডোতে এটি প্লে mplayerএর কীবোর্ড শর্টকাট প্লে, বিরতি, আবার গুটিয়ে নেওয়া, ধাপ ফ্রেমের জন্য )। অবশ্যই, আমি পুরো প্লেলিস্টটি উল্লেখ করতে শুরু এবং শেষের সময়গুলি কল্পনা করেছি এবং সেই অঞ্চলটিতে প্লেলিস্টে শেষ হওয়া কোনও ফাইল অন্তর্ভুক্ত করব।

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

সুতরাং, যদিও আমি মনে করি যে উপরের সমস্তগুলি কিছুটা প্রসারিত হতে পারে - সেখানে কি এমন কিছু উপস্থিত রয়েছে যা উপরে বর্ণিত ওয়ার্কফ্লো অনুমান করতে পারে?


1
যখন আমি ভিডিওগুলিতে বিভক্ত / যোগদানের প্রয়োজন হয় তখন আমি প্রায়শই এমকেভির্ম ব্যবহার করি।
vi।

@ ভিআই এর জন্য ধন্যবাদ - এর আগে কখনও শুনিনি mkvmerge, আমি এটি পরীক্ষা করে নেব তা নিশ্চিত করবে .. চিয়ার্স!
sdaau

উত্তর:


17

হ্যা এখানে. "গলিত" নামক অ্যাপটি ব্যবহার করার চেষ্টা করুন। ডকুমেন্টেশন এখানে দেখুন:

https://www.mltframework.org/docs/melt/

আপনি যদি ডেবিয়ান থেকে প্রাপ্ত ডিস্ট্রো ব্যবহার করেন:

apt-get install melt

ম্যাক অন:brew install mlt
ক্রাফটিদেবিল

23

ঠিক আছে, যেহেতু আমি meltকমান্ড লাইন ব্যবহার সম্পর্কে খুব বেশি কিছু খুঁজে পাচ্ছি না , এখানে কয়েকটি নোট রয়েছে ... (এবং এর পরে দেখুন এই উত্তরটি ফাইলের প্রত্যাশিত প্রোগ্রামগুলি ট্র্যাক করার প্রক্রিয়া বিকল্পটি ব্যবহার করে নির্দিষ্ট এক্সটেনশন যুক্তির সাথে যুক্ত করুন? - কোনও স্ক্রিপ্টের জন্য ইউনিক্স এবং লিনাক্স স্ট্যাক এক্সচেঞ্জ মাধ্যমে উদাহরণস্বরূপ bash)

শুরু করার জন্য - এর জন্য একটি উবুন্টু / ডেবিয়ান প্যাকেজ রয়েছে melt(আমার কাছে উবুন্টু 11.04 এমএলটি গলানো 0.6.2 সহ আছে); @ ইল্টনের দেওয়া লিঙ্কটি "মিডিয়া লোভিন 'টুলকিট" (এমএলটি) উইকির জন্য, যা melt(তবে এছাড়াও openshotএবং kdenlive) এর একটি অংশ । এখানে তাদের গিট থেকে ডকুমেন্টেশন টেক্সট ফাইলগুলির লিঙ্কটি রয়েছে: mltframework.org/mlt.git/tree - ডকস / ; নোট করুন উইকিটির বিল্ডস্ক্রিপ্ট সম্পর্কে একটি পৃষ্ঠা রয়েছে

আপাতত, আমার সবচেয়ে বড় (একমাত্র) সমস্যাটি হ'ল আমি একটি সঙ্কুচিত ভিডিও রচনা রপ্তানি করার কোনও উপায় খুঁজে পাচ্ছি না (হয় pngফ্রেম হিসাবে , বা কিছু সংক্ষেপিত ভিডিও ফর্ম্যাট)।

 

প্রথমত, কমান্ড-লাইনে meltআপনি ফ্রেমের মাধ্যমে প্লেব্যাক নিয়ন্ত্রণ করতে পারেন; উদাহরণস্বরূপ, একটি 15-ফ্রেম দীর্ঘ সাদা ফাঁকা "তৈরি" করতে, এবং বিল্ট-ইন meltপ্লেয়ারের সাথে এটি দেখতে , ব্যবহার করুন

melt -blank 15

আপনি যখন দেখতে পাবেন melt, আপনি stderrঅন্তর্নির্মিত প্লেয়ারের জন্য একটি কমান্ড লাইন তথ্য পাবেন :

$ melt -blank 15 
+-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+
|1=-10| |2= -5| |3= -2| |4= -1| |5=  0| |6=  1| |7=  2| |8=  5| |9= 10|
+-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+
+---------------------------------------------------------------------+
|               H = back 1 minute,  L = forward 1 minute              |
|                 h = previous frame,  l = next frame                 |
|           g = start of clip, j = next clip, k = previous clip       |
|                0 = restart, q = quit, space = play                  |
+---------------------------------------------------------------------+
Current Position:         15

একবার meltখেলতে শেষ হয়ে গেলে , এটি প্রস্থান করবে না - সুতরাং qএটি থেকে প্রস্থান করার জন্য আপনার টাইপ করা উচিত ।

আমাদের লক্ষ্য করা উচিত যে তথাকথিত "উত্পাদক" এবং "ভোক্তা" রয়েছে melt। যদি কিছুই নির্দিষ্ট না করা থাকে, তবে ডিফল্ট "গ্রাহক" হ'ল একটি এসডিএল (সিম্পল ডাইরেক্টমিডিয়া লেয়ার) উইন্ডোটি ভিডিওটি প্লে করে; সুতরাং উপরের আদেশটি একই:

melt -blank 15 -consumer sdl

সুতরাং, আমরা কী meltপ্রদর্শন করে তা সংরক্ষণ করতে চাইলে আমাদের ভোক্তাকে এমন কিছুতে পরিবর্তন করা উচিত যা কোনও ফাইল ফর্ম্যাটকে সমর্থন করবে। ভোক্তাদের একটি তালিকা পেতে:

$ melt -query "consumers"
---
consumers:
  - sdl
  - sdl_audio
  - sdl_preview
  - sdl_still
  - gtk2_preview
  - avformat
  - libdv
  - xml
  - decklink
  - null
...

libdvভোক্তা ইচ্ছা আউটপুট ডিভি সরাসরি ফরম্যাট ডেটা stdout, তাই একটি ভিডিও সংরক্ষণ করতে .dvআপনি যে ফাইলটি করতে চাই:

melt -blank 15 -consumer libdv > test.dv

নোট করুন যে তালিকাভুক্ত গ্রাহকদের কাছ থেকে, আমি চেষ্টা করেছি এমন একমাত্র বিন্যাস, এটি অন্য একটি অ্যাপ্লিকেশনেও খোলা যেতে পারে libdv(আমি vlcঅন্য অ্যাপ্লিকেশন হিসাবে ব্যবহার করেছি ); তবে এটি বিভিন্ন ধরণের ট্রান্সকোডিংয়ের জন্য ব্যর্থ হতে পারে ( উদাহরণস্বরূপ, ফাঁকা পরিবর্তে, আমি কোনও .flvফাইল থেকে স্নিপেট রূপান্তরিত করার চেষ্টা করি , ফলস্বরূপ .dv ফাইলটি খোলে এবং এতে চালিত vlcহয় তবে এটি দূষিত )।

 

এখন সম্পাদনা অংশের জন্য; মূলত, আপনি সরাসরি কমান্ড লাইনে ফাইল-নাম / ইন / আউট স্টাঞ্জার একটি সিরিজ নির্দিষ্ট করতে পারেন ; বলুন আপনার কাছে একটি ফাইল রয়েছে video.avi- তবে আপনি এটি করতে পারেন:

melt video.avi in=30 out=79 -blank 15 video.avi in=30 out=79

বা কিছুটা ভাল ফর্ম্যাট করা:

melt \ 
video.avi in=30 out=79 \ 
-blank 15 \
video.avi in=30 out=79

এর অর্থ এটি video.avi30 এর ফ্রেম থেকে ফ্রেম 79 পর্যন্ত প্লে হবে; তারপরে একটি 15-ফ্রেম ফাঁকা; এবং তারপরে video.aviফ্রেম 30 থেকে ফ্রেম 79 এর ক্রম আবার।

.pngভিডিও সম্পাদনা রচনায় চিত্রগুলি (বলুন ) ব্যবহার করতে :

melt \
video.avi in=30 out=79 \
test.png in=0 out=15 \
video.avi in=30 out=79 \
-blank 15

নোট করুন যে test.png, in=পরামিতি 0 হতে হবে না - তবে, চিত্রের জন্য প্রদর্শন করা হবে out- inসময়; এই ক্ষেত্রে, in=0পরামিতিটি পুরোপুরি ছেড়ে দেওয়া সহজ হবে iest

 

ভাল জিনিস হ'ল এই সম্পাদনা ক্রমটি সংরক্ষণ করা যেতে পারে - বা meltএটি কল হিসাবে , সিরিয়ালযুক্ত - কোনও ফাইলে; নোট করুন যেমন সিরিয়ালাইজেশনের দুটি উপায় রয়েছে: "সরল" বা এক্সএমএল। উদাহরণস্বরূপ, উপরের কমান্ডটিকে "সাধারণ" সিরিয়ালযুক্ত ফাইল হিসাবে সংরক্ষণ করতে, আমরা -serialise [filename]কমান্ডটিতে স্যুইচটি যুক্ত করতে পারি :

$ melt video.avi in=30 out=79 -blank 15 video.avi in=30 out=79 -serialise file.melt 
Project saved as file.melt.

এখন এতে file.meltরয়েছে:

video.avi
in=30
out=79
-blank
15
video.avi
in=30
out=79

আপাতদৃষ্টিতে, এই "সরল" সিরিয়ালযুক্ত ফাইল ফর্ম্যাটে "মন্তব্য" চরিত্রটি নেই - যদি আমি একটি " # comment" "লাইন যুক্ত করার চেষ্টা করি তবে meltঅভিযোগ করে: ' " # মন্তব্য "" লোড করতে ব্যর্থ হয়েছে (তবে এটি বাদে, মনে হয় এমন একটি লাইন উপেক্ষা করা হয়, এবং প্লেব্যাক যাইহোক চলতে থাকবে)। " .melt" এটি একটি এক্সটেনশন বলে মনে হচ্ছে যা meltসাধারণ সিরিয়ালযুক্ত ফাইল হিসাবে স্বীকৃত।

এখন, এই সিরিয়ালযুক্ত ফাইলটি আবার খেলতে, আমরা নীতিগতভাবে কেবল কল করতে পারি melt file.melt- তবে আরও একটি সম্পূর্ণ কমান্ড লাইনটি হ'ল:

melt melt_file:file.melt -consumer sdl

... যার অর্থ হ'ল: melt_file"উত্পাদক" খুলতে ব্যবহার করুন file.melt, এবং এর ফ্রেমগুলি "ভোক্তা" sdl(উইন্ডো) এ রেন্ডার করুন ।

নোট করুন যে আমার কাছে অভিজ্ঞতা আছে, যা (বলুন) .flvভিডিও কমান্ড লাইনে কোনও সমস্যা ছাড়াই প্লে করে - তবে, যখন file.meltসিরিয়ালযুক্ত ফাইলটিতে নির্দিষ্ট করা হয় তখন সেগমেন্টেশন ত্রুটি সৃষ্টি করে ! .dvভিডিওগুলি meltনিজেই উত্পাদিত হয়েছে বলে মনে হচ্ছে file.melt...

 

এক্সএমএল ধরণের সিরিয়ালাইজেশনটি -consumer xml:স্যুইচ ( পরিবর্তে-serialise ) ব্যবহার করে অর্জন করা যেতে পারে - সুতরাং উপরের উদাহরণটি এখন হবে:

melt video.avi in=30 out=79 -blank 15 video.avi in=30 out=79 -consumer xml:file.mlt

নতুন উত্পন্ন file.mltএক্সএমএল ফাইলটি "ফিরতে" খেলতে এখন সরাসরি সরাসরি করতে পারেন melt file.mlt- বা, আরও একটি সম্পূর্ণ কমান্ড লাইনটি হ'ল:

melt xml:file.mlt -consumer sdl

... যার অর্থ হ'ল : xml"উত্পাদক" ব্যবহার করুন ( নোট, আগে এটি ভোক্তা ছিল ) খোলার জন্য file.mltএবং এর ফ্রেমগুলি "ভোক্তা" sdl(উইন্ডো) এ রেন্ডার করুন ।

মনে রাখবেন যে এক্ষেত্রে, আমি অভিজ্ঞতা পেয়েছি যে খুব একই .flvভিডিওগুলি যা একটি সাধারণ সিরিয়ালাইজেশন ফাইলের সাথে সেগফল্ট তৈরি করেছিল - এক্সএমএল সিরিয়ালাইজেশন ফাইলের সাথে ঠিক কাজ করে!

এই ক্ষেত্রে, ফলাফলযুক্ত file.mltএক্সএমএল ফাইলের অনেকগুলি সেটিংস রয়েছে যেমন রেজোলিউশন, ফ্রেম রেট, কোডেক তথ্য ইত্যাদি - তবে সরাসরি পাঠ্য সম্পাদকের সাথে কাজ করা আরও কঠিন:

<?xml version="1.0" encoding="utf-8"?>
<mlt root="/path/to" title="video.avi">
  <profile description="automatic" width="320" height="240" progressive="1" sample_aspect_num="1" sample_aspect_den="1" display_aspect_num="320" display_aspect_den="240" frame_rate_num="25" frame_rate_den="1" colorspace="601"/>
  <producer id="producer0" in="30" out="79">
    <property name="mlt_type">producer</property>
    <property name="aspect_ratio">1.000000</property>
    <property name="length">125</property>
    <property name="eof">pause</property>
    <property name="resource">video.avi</property>
    <property name="meta.media.nb_streams">2</property>
    <property name="meta.media.0.stream.type">video</property>
    <property name="meta.media.0.stream.frame_rate">25.000000</property>
    <property name="meta.media.0.stream.sample_aspect_ratio">0.000000</property>
    <property name="meta.media.0.codec.frame_rate">25.000000</property>
    <property name="meta.media.0.codec.pix_fmt">yuv420p</property>
    <property name="meta.media.0.codec.sample_aspect_ratio">1.000000</property>
    <property name="meta.media.0.codec.colorspace">601</property>
    <property name="meta.media.0.codec.name">mpeg4</property>
    <property name="meta.media.0.codec.long_name">MPEG-4 part 2</property>
    <property name="meta.media.0.codec.bit_rate">0</property>
    <property name="meta.media.1.stream.type">audio</property>
    <property name="meta.media.1.codec.sample_fmt">s16</property>
    <property name="meta.media.1.codec.sample_rate">22050</property>
    <property name="meta.media.1.codec.channels">1</property>
    <property name="meta.media.1.codec.name">mp2</property>
    <property name="meta.media.1.codec.long_name">MP2 (MPEG audio layer 2)</property>
    <property name="meta.media.1.codec.bit_rate">64000</property>
    <property name="seekable">1</property>
    <property name="meta.media.sample_aspect_num">1</property>
    <property name="meta.media.sample_aspect_den">1</property>
    <property name="meta.attr.title.markup"></property>
    <property name="meta.attr.author.markup"></property>
    <property name="meta.attr.copyright.markup"></property>
    <property name="meta.attr.comment.markup"></property>
    <property name="meta.attr.album.markup"></property>
    <property name="audio_index">1</property>
    <property name="video_index">0</property>
    <property name="mlt_service">avformat</property>
  </producer>
  <producer id="producer1" in="30" out="79">
    <property name="mlt_type">producer</property>
    <property name="aspect_ratio">1.000000</property>
    <property name="length">125</property>
    <property name="eof">pause</property>
    <property name="resource">video.avi</property>
    <property name="meta.media.nb_streams">2</property>
    <property name="meta.media.0.stream.type">video</property>
    <property name="meta.media.0.stream.frame_rate">25.000000</property>
    <property name="meta.media.0.stream.sample_aspect_ratio">0.000000</property>
    <property name="meta.media.0.codec.frame_rate">25.000000</property>
    <property name="meta.media.0.codec.pix_fmt">yuv420p</property>
    <property name="meta.media.0.codec.sample_aspect_ratio">1.000000</property>
    <property name="meta.media.0.codec.colorspace">601</property>
    <property name="meta.media.0.codec.name">mpeg4</property>
    <property name="meta.media.0.codec.long_name">MPEG-4 part 2</property>
    <property name="meta.media.0.codec.bit_rate">0</property>
    <property name="meta.media.1.stream.type">audio</property>
    <property name="meta.media.1.codec.sample_fmt">s16</property>
    <property name="meta.media.1.codec.sample_rate">22050</property>
    <property name="meta.media.1.codec.channels">1</property>
    <property name="meta.media.1.codec.name">mp2</property>
    <property name="meta.media.1.codec.long_name">MP2 (MPEG audio layer 2)</property>
    <property name="meta.media.1.codec.bit_rate">64000</property>
    <property name="seekable">1</property>
    <property name="meta.media.sample_aspect_num">1</property>
    <property name="meta.media.sample_aspect_den">1</property>
    <property name="meta.attr.title.markup"></property>
    <property name="meta.attr.author.markup"></property>
    <property name="meta.attr.copyright.markup"></property>
    <property name="meta.attr.comment.markup"></property>
    <property name="meta.attr.album.markup"></property>
    <property name="audio_index">1</property>
    <property name="video_index">0</property>
    <property name="mlt_service">avformat</property>
  </producer>
  <playlist id="playlist0">
    <entry producer="producer0" in="0" out="49"/>
    <blank length="16"/>
    <entry producer="producer1" in="0" out="49"/>
  </playlist>
  <tractor id="tractor0" title="video.avi" global_feed="1" in="0" out="115">
    <track producer="playlist0"/>
  </tractor>
</mlt>

এছাড়াও, ফ্রেম-নির্ভুল কাটগুলির জন্য এখানে একটি উদাহরণ রয়েছে: কমান্ড লাইন থেকে সঠিকভাবে ভিডিও ফাইলগুলি কেটে
ফেলুন

7

এই সমস্যার ffmpeg সমাধানটি দেখতে এরকম কিছু দেখাচ্ছে:

mkfifo temp1 temp2 temp3
ffmpeg -i input.wmv -ss 30 -to 60 -c copy output.wmv temp1 2> /dev/null & \
ffmpeg -i input2.wmv -t 60 -c copy temp2 2> /dev/null & \
ffmpeg -i input3.wmv -i image.png -filter_complex "[0:v][1:v] \
overlay=25:25:enable='between(t,0,20)'" -pix_fmt yuv420p -c:a copy temp3 2> /dev/null & \
ffmpeg -f mpegts -i "concat:temp1|temp2|temp3" -c copy output.mp4

এটি নামক পাইপ ব্যবহার করে, সুতরাং ডিস্কে কোনও টেম্প ফাইল তৈরি করে না, এবং আপনাকে ভিডিও ক্লিপের কিছু অংশ কাটাতে এবং চিত্রগুলি জুড়তে দেয়।

এই উদাহরণগুলি প্রথম ইনপুটটির সময় 30-60 ব্যবহার করে এবং তারপরে দ্বিতীয় ইনপুটটির প্রথম মিনিট যুক্ত করে, তারপরে একটি চিত্র ফাইল এবং তারপরে পুরো তৃতীয় ভিডিও সন্নিবেশ করে।

কোড থেকে উত্তোলন:

ffmpeg সংক্ষিপ্ত পাতা: https://trac.ffmpeg.org/wiki/Concateate

ভিডিওটি কাটাতে ffmpeg ব্যবহার করে সুপারভাইজার পৃষ্ঠা

অতি ব্যবহারকারীর পৃষ্ঠা https://video.stackexchange.com/questions/12105/add-an-image-in-front-of-video-using-ffmpeg


যে জন্য ধন্যবাদ, আমিও সম্প্রতি এর শিখেছি ffmpeg-CONCAT , যা JavaScript লেখা আছে (এবং আপনি প্রয়োজন npm, এটি ইনস্টল করা) যাতে আমি এটা উল্লেখ চাই
sdaau

4

আমিও এই জাতীয় একটি সরঞ্জাম খুঁজছিলাম এবং এটি প্রদর্শিত হবে যে গলিত হ'ল কাজের জন্য সরঞ্জাম, তবে ডকুমেন্টেশনটি বোঝা / অনুপস্থিত প্রায় অসম্ভব। আপনি সম্পাদনার প্রায় কোনও সমন্বয় করতে পারেন। আমার কিছু 'অ্যাকশন ক্যাম' ফুটেজ ছিল ... শব্দটি যদিও ব্যবহারের অযোগ্য ছিল। আমি একসাথে (এইচ 264) ভিডিওতে যোগদান করেছি, একটি 60 ফ্রেম বিবর্ণ এবং যুক্ত সাউন্ড ট্র্যাকের সাহায্যে শব্দটি প্রতিস্থাপন করেছি:

% melt -video-track vid1.avi vid2.avi -mix 60 -mixer luma vid3.avi \
   -mix 60 -mixer luma -audio-track vorbis:track1.ogg vorbis:track2.ogg \
   -consumer avformat:OUT.avi acodec=libmp3lame vcodec=libx264

আপনি এটি সম্পর্কে এখানে আরও পড়তে পারেন । মূল ওয়েবসাইটটি এখানে

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