ছবিতে চিত্র সহ ffmpeg এ তিন বা ততোধিক অডিও / ভিডিও ফাইলগুলিকে কীভাবে একত্রিত করবেন


0

আমি ছবিতে একাধিক চিত্র সহ একটি একক ভিডিও ফাইল করার চেষ্টা করছি (সংক্ষিপ্ত জন্য PIP)। আমি কাজ একটি ছবি দুটি ছবি পেতে সক্ষম ছিল। আমি এখন একটি 4 র্থ ইনপুট যোগ করার চেষ্টা করছি।

আমি আশা করি এটা কি দেখতে হবে:

Mockup Image Example

আমার চেষ্টা কমান্ড:

ffmpeg -i 444_remote_0.webm -i 444_remote_1.webm -i 444_remote_2.webm \
       -i 444_local_0.webm -filter_complex \
       "[1:v]scale=iw/4:-1:flags=lanczos[rem1]; \
        [2:v]scale=iw/4:-1:flags=lanczos[rem2]; \
        [3:v]scale=iw/4:-1:flags=lanczos[loc0]; \
        [0:v][loc0]overlay=main_w-overlay_w-10:main_h-overlay_h-10[bg]; \
        [bg][rem1]overlay=main_w-overlay_w-180:main_h-overlay_h-10[v]; \
        [bg][rem2]overlay=main_w-overlay_w-360:main_h-overlay_h-10[v]; \
        [0:a][1:a][2:a][3:a]amerge=inputs=4[a]" \
       -map "[v]" -map "[a]" -ac 2 -ar 44100 -vcodec libx264 -acodec aac 444.mp4

আমি একটি নতুন ত্রুটি পেয়েছি: Invalid stream specifier: bg.

কনসোল আউটপুট:

ffmpeg -i 444_remote_0.webm -i 444_remote_1.webm -i 444_remote_2.webm -i 444_local_0.webm -filter_complex "[1:v]scale=iw/4:-1:flags=lanczos[rem1]; [2:v]scale=iw/4:-1:flags=lanczos[rem2]; [3:v]scale=iw/4:-1:flags=lanczos[loc0]; [0:v][loc0]overlay=main_w-overlay_w-10:main_h-overlay_h-10[bg]; [bg][rem1]overlay=main_w-overlay_w-180:main_h-overlay_h-10[v]; [bg][rem2]overlay=main_w-overlay_w-360:main_h-overlay_h-10[v]; [0:a][1:a][2:a][3:a]amerge=inputs=4[a]" -map "[v]" -map "[a]" -ac 2 -ar 44100 -vcodec libx264 -acodec aac 444.mp4
ffmpeg version N-80901-gfebc862 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
  configuration: --extra-libs=-ldl --prefix=/opt/ffmpeg --mandir=/usr/share/man --enable-avresample --disable-debug --enable-nonfree --enable-gpl --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-decoder=amrnb --disable-decoder=amrwb --enable-libpulse --enable-libfreetype --enable-gnutls --enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-libvorbis --enable-libmp3lame --enable-libopus --enable-libvpx --enable-libspeex --enable-libass --enable-avisynth --enable-libsoxr --enable-libxvid --enable-libvidstab
  libavutil      55. 28.100 / 55. 28.100
  libavcodec     57. 48.101 / 57. 48.101
  libavformat    57. 41.100 / 57. 41.100
  libavdevice    57.  0.102 / 57.  0.102
  libavfilter     6. 47.100 /  6. 47.100
  libavresample   3.  0.  0 /  3.  0.  0
  libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  1.100 /  2.  1.100
  libpostproc    54.  0.100 / 54.  0.100
Input #0, matroska,webm, from '444_remote_0.webm':
  Metadata:
    encoder         : Chrome
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0(eng): Audio: opus, 48000 Hz, mono, fltp (default)
    Stream #0:1(eng): Video: vp8, yuv420p, 640x480, SAR 1:1 DAR 4:3, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)
Input #1, matroska,webm, from '444_remote_1.webm':
  Metadata:
    encoder         : Chrome
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #1:0(eng): Audio: opus, 48000 Hz, mono, fltp (default)
    Stream #1:1(eng): Video: vp8, yuv420p, 640x480, SAR 1:1 DAR 4:3, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)
Input #2, matroska,webm, from '444_remote_2.webm':
  Metadata:
    encoder         : Chrome
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #2:0(eng): Audio: opus, 48000 Hz, mono, fltp (default)
    Stream #2:1(eng): Video: vp8, yuv420p, 640x480, SAR 1:1 DAR 4:3, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)
Input #3, matroska,webm, from '444_local_0.webm':
  Metadata:
    encoder         : Chrome
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #3:0(eng): Audio: opus, 48000 Hz, mono, fltp (default)
    Stream #3:1(eng): Video: vp8, yuv420p, 640x480, SAR 1:1 DAR 4:3, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)
[matroska,webm @ 0x35f5c40] Invalid stream specifier: bg.
    Last message repeated 1 times
Stream specifier 'bg' in filtergraph description [1:v]scale=iw/4:-1:flags=lanczos[rem1]; [2:v]scale=iw/4:-1:flags=lanczos[rem2]; [3:v]scale=iw/4:-1:flags=lanczos[loc0]; [0:v][loc0]overlay=main_w-overlay_w-10:main_h-overlay_h-10[bg]; [bg][rem1]overlay=main_w-overlay_w-180:main_h-overlay_h-10[v]; [bg][rem2]overlay=main_w-overlay_w-360:main_h-overlay_h-10[v]; [0:a][1:a][2:a][3:a]amerge=inputs=4[a] matches no streams.

আপনার শেষ কমান্ড থেকে সম্পূর্ণ কনসোল আউটপুটটি প্রদর্শন করতে হবে (ছাড়া -loglevel fatal )।
llogan

@LordNeckbeard ইনপুট করার জন্য ধন্যবাদ, আমি বুঝতে পারিনি যে বার্তাটি এটিকে পোস্ট করার জন্য উপযুক্ত ছিল। আমি সম্পূর্ণ কনসোল আউটপুট সঙ্গে আমার মূল পোস্ট সম্পাদনা করেছি।
Daryl

উত্তর:


2

প্লেসমেন্ট বিকল্প 1: ডান দিকে ঝুলন্ত

আপনার mockup লেগেছে যেখানে পিপ ডান দিকে ওজন হয়:

enter image description here

ffmpeg -i blue.webm -i green.webm -i red.webm -i orange.webm -filter_complex \
"[1:v]scale=iw/4:-1:flags=lanczos[pip1]; \
 [2:v]scale=iw/4:-1:flags=lanczos[pip2]; \
 [3:v]scale=iw/4:-1:flags=lanczos[pip3]; \
 [0:v][pip1]overlay=main_w-overlay_w-10:main_h-overlay_h-10[bg1]; \
 [bg1][pip2]overlay=main_w-overlay_w*2-20:main_h-overlay_h-10[bg2]; \
 [bg2][pip3]overlay=main_w-overlay_w*3-30:main_h-overlay_h-10,format=yuv420p[v]; \
 [0:a][1:a][2:a][3:a]amerge=inputs=4[a]" \
-map "[v]" -map "[a]" -ac 1 output.mp4

প্লেসমেন্ট বিকল্প 2: কেন্দ্রীভূত

enter image description here

ffmpeg -i blue.webm -i green.webm -i red.webm -i orange.webm -filter_complex \
"[1:v]scale=iw/4:-1:flags=lanczos[pip1]; \
 [2:v]scale=iw/4:-1:flags=lanczos[pip2]; \
 [3:v]scale=iw/4:-1:flags=lanczos[pip3]; \
 [0:v][pip1]overlay=main_w-overlay_w-10:main_h-overlay_h-10[bg1]; \
 [bg1][pip2]overlay=(main_w-overlay_w)/2:main_h-overlay_h-10[bg2]; \
 [bg2][pip3]overlay=10:main_h-overlay_h-10,format=yuv420p[v]; \
 [0:a][1:a][2:a][3:a]amerge=inputs=4[a]" \
-map "[v]" -map "[a]" -ac 1 output.mp4

নোট

  • Lanczos স্কেল আলগোরিদিম সম্ভবত ডিফল্ট চেয়ে ভাল downscale হবে।

  • জন্য ইনপুট ডিফল্ট সংখ্যা amerge 2, কিন্তু সর্বদা এটি ব্যবহার করা ভাল inputs আপনি সম্মুখীন সমস্যা এড়াতে বিকল্প।

  • ফিল্টারগ্রাফের প্রতিটি আউটপুট লেবেলটির জন্য একটি অনন্য নাম ব্যবহার করুন।

  • যদি আপনার ইনপুটগুলিতে একই মেয়াদ না থাকে তবে পড়ুন উপরে পাতা অপশন eof_action, shortest, ইত্যাদি, এটা কোন সময়কাল বিচ্ছিন্নতা কিভাবে পরিচালনা করা উচিত তা বলতে।

  • তুমি ব্যবহার করতে পার চাটু এবং পরিত্যাগ -ac Downsampling লেআউট উপর আরো সুনির্দিষ্ট নিয়ন্ত্রণ আছে।


তাই আপনাকে অনেক ধন্যবাদ! যে পুরোপুরি কাজ! আমি সত্যিই সত্যিই তথ্য প্রশংসা করি। ধন্যবাদ!
Daryl

আবার ধন্যবাদ. আমি একটি 4 র্থ ইনপুট ফাইল যোগ করার চেষ্টা করেছি, কিন্তু এটি [বিজি] উদ্বৃত্ত ব্যবহার করে আমার পছন্দ বলে মনে হচ্ছে না। এটা আমাকে ভুল দিয়েছে: Invalid stream specifier: bg. তৃতীয় পিআইপি এলিজাইড [3:v]scale=iw/4:-1:flags=lanczos[pip3]; আরেকটি ওভারলে যোগ করা হয়েছে: [bg][pip3]overlay=main_w-overlay_w-180:main_h-overlay_h-10[v]; আপডেট করা আমেরিকা: [0:a][1:a][2:a][3:a]amerge=inputs=4[a]। আমি আলাদা প্রশ্ন হিসাবে এই পোস্ট করা উচিত? মন্তব্য এখানে তার একটি বিট দীর্ঘ।
Daryl

@ ডারল আপনি আপনার প্রশ্নটি আপনার নতুন কমান্ড এবং সংশ্লিষ্ট সম্পূর্ণ কনসোল আউটপুট দ্বারা সম্পাদনা করতে পারেন। এছাড়াও, উত্তর থেকে, "ফিল্টারগ্রাফের প্রতিটি আউটপুট লেবেলটির জন্য একটি অনন্য নাম ব্যবহার করুন"। যেখানে আপনি তৃতীয় পপ স্থাপন করা চান?
llogan

তাই আপনাকে অনেক ধন্যবাদ. আমি সম্পূর্ণ কনসোল সম্পাদনা করেছি এবং একটি চিত্র লিঙ্ক যোগ করেছি যা আপনাকে দেখানো হচ্ছে যে আমি কীভাবে ভিডিওগুলি স্থাপন করতে চাই। ধন্যবাদ!
Daryl

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