FFmpeg এনকোডিং থামিয়ে আবার চালু করার কোনও উপায় আছে?


14

আমি প্রতিদিন কয়েক ঘন্টা ভিডিও ফুটেজ রেকর্ড করি, যা আমি এনকোডিংয়ের জন্য সারি রেখেছি ffmpeg। আমি এর veryslowসাথে প্রিসেট ব্যবহার করি x265, তাই একক ঘন্টা ভিডিওতে এনকোড করতে 20 ঘন্টা বা তার বেশি সময় লাগতে পারে।

যেহেতু আমার কম্পিউটারে দিনরাত কাজ করছে, আমি ভাবছি যে এনকোডিং থামিয়ে আবারffmpeg চেষ্টা করার কোনও উপায় আছে ? আমি ওএস এক্স এর জন্য ব্যবহার করছি ।Terminal

যদি তা হয় তবে আমি টার্মিনালটি বন্ধ করে কম্পিউটারটি রিবুট করার পরেও কী কী এনকোডিং চালিয়ে যেতে পারি? আমি মনে করি আপনি ওএস এক্সে আবার লগ ইন করলে টার্মিনাল সেশনটি পুনরুদ্ধার করা হবে, কমপক্ষে টার্মিনালের ইতিহাস history

উত্তর:


14

ঝুলান

একটি সহজ পদ্ধতি এটি ctrl+ দিয়ে স্থগিত করা z। অথবা আপনি স্থগিত করার জন্য পিআইডি পেতে pgrep ffmpegপারেন kill -s SIGSTOP <PID>

তারপরে fgকমান্ড বা পুনরায় শুরু করুন kill -s SIGCONT <PID>

দুর্ভাগ্যক্রমে এটি পুনরায় বুট থেকে বাঁচবে না।

VM- র

আপনি যদি ভার্চুয়ালবক্সের মতো কোনও ভার্চুয়াল মেশিন ব্যবহার করেন তবে কোনও অতিথি ভিএম-এ আপনার এনকোডিংটি সম্পাদন করতে পারেন। এটি আপনাকে যেকোনো সময় "মেশিনের পরিস্থিতি সংরক্ষণ" করতে দেয় যা পুনরায় বুট থেকে বাঁচতে পারে। এটি আপনাকে অতিথির জন্য সর্বাধিক সিপিইউ সংস্থান নির্ধারণের অনুমতি দিতে পারে যাতে আপনার হোস্টের সর্বদা উপলভ্য সংস্থান থাকে।

সম্ভবত ওভারকিল, তবে আপনি যদি ভিএমএসের সাথে পরিচিত বা ইতিমধ্যে একটি ব্যবহার করেন তবে এটি একটি সম্ভাব্য সমাধান।


আমি সেই ভিএম সমাধানটি পছন্দ করি, তবে আপনি যদি ইতিমধ্যে একটি ব্যবহার না করে থাকেন তবে এটি বেশ বড় ঝামেলা।
ব্যবহারকারী 24601

ভার্চুয়ালবক্স উপায়টি আমার পক্ষে কার্যকর হয়নি। মিড-এনকোডিংয়ে কেবলমাত্র রাষ্ট্রটিকে বাঁচানোর চেষ্টা করেছিল এবং [সিটিআরএল] + [z] দ্বারা স্থগিত করার এবং তারপরে রাষ্ট্রটি সংরক্ষণ করার চেষ্টা করেছিল। রাষ্ট্র পুনরুদ্ধার এবং পুনরায় চালু করার চেষ্টা করার পরে, ffmpegএকটি ত্রুটি ( decode_band_types: Input buffer exhausted before END element foundবা Invalid NAL unit sizeএবং Error writing trailer/ Protocol error) দিয়ে থামে । এটি সময়ের সাথে লাফের সাথে সম্পর্কিত হতে পারে, আমি জানি না।
জোনিস এলমারিস

@ জনিস এলমারিস আমি এই সমস্যাটির সদৃশ হতে পারি না। আমি এটি উবুন্টু 18.04 ভিএম এ চেষ্টা করেছি এবং এটি কার্যকর হয়েছে।
লোগান

ঠিক আছে, আমি সম্ভবত যথেষ্ট ভাগ্যবান নই। :) একটি নতুন লিনাক্স মিন্ট 19.1 (উবুন্টু 18.04 এর উপর ভিত্তি করে) ভার্চুয়ালবক্স ভিএম দিয়ে চেষ্টা করা হয়েছে।
জোনিস এলমারিস

আমার ffmpeg অনেক থ্রেড এবং অনেক পিআইডি আছে। আমি কি তাদের প্রত্যেককেই সাইনস্টপ এবং সিগকন্ট করতে পারি? সময় মতো বাধা আছে?
wuppi

12

উইন্ডোজে, "বিরতি / বিরতি" কী টিপুন (উপরের-ডান দিকের সর্বাধিক কী) এটি বিরতি দেবে। এন্টার আবার শুরু হবে।

যদি এটি কাজ না করে, ফোকাস দেওয়ার জন্য কমান্ড প্রম্পট উইন্ডোটিতে ক্লিক করুন।


এটি উইন্ডোজের পক্ষে সবচেয়ে সহজ এবং সর্বোত্তম উত্তর (উইন্ডোজ 10 এ যাচাই করা হয়েছে)।
lidsinker

1
এটি সিপু সম্পূর্ণরূপে মুক্তি দেয় তবে মেষটি এখনও বাধা নেই। আমার ক্ষেত্রে আমার কাছে 8 জিবি র‌্যাম রয়েছে এবং অপারেশনটি বিরতি দেওয়া অবস্থায় এটি এখনও প্রায় সমস্ত ব্যবহার করে। এর জন্য কোনও ফিক্স? আমি কি এইচডিডি বা অন্য কিছুতে স্থানান্তর করতে পারি? আমি যখন বিরতি দিয়ে থাকি তখন জিনিসগুলি চলার জন্য কিছুটা উইন্ডআপ নিতে আপত্তি জানায় না।
ঘুড়ি

10

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

এটি সত্য বিরতি / পুনঃসূচনা সুবিধা নয় তবে পিসমিল বিভাগ আপনাকে এনকোডিং থেকে বিরতি দেওয়ার অনুমতি দেবে।

আদেশগুলি জারি করার জন্য একটি মোটামুটি ওভারভিউ:

অংশগুলিতে ফুলফিল ভাঙা

ffmpeg -i recording.mp4 -c copy -flags +global_header -segment_time n -f segment file%03d.mp4

এটি file000.mp4, file001.mp4 এবং আরও কিছু তৈরি করা উচিত। সেগমেন্টার কীভাবে কাজ করে - কারণ এটি কেবল আই-ফ্রেমে কাটবে - এই ফাইলগুলি ঠিক nসেকেন্ডের বেশি হবে না এবং ভিডিও অংশটি সঠিকভাবে প্লে হতে পারে না, তবে ডেটা এখানে রয়েছে এবং আপনি প্রতিটি অংশকে রূপান্তর করতে পারেন যেমন,

ffmpeg -i file001.mp4 -{filter/encoding parameters} -fflags +genpts file001-new.mp4

এনকোড করা অংশগুলিতে পুনরায় যোগদান করুন

একটি টেক্সট ফাইল তৈরি করুন এবং প্রতিটি রেন্ডার করা ফাইলের মতো করে রাখুন

file 'file000-new.mp4'
file 'file001-new.mp4'
.... 
file 'filelast-new.mp4'

এবং চালান

ffmpeg -f concat -i textfile -c copy -fflags +genpts recording-encoded.mp4

কেবলমাত্র 6 গিগাবাইট মেমরি, এবং এক্স 264 থেকে এক্স 265 এ এনকোনড করতে 12 ঘন্টা আনুমানিক সময় এবং কোনও ব্রেক-ব্রেক (ডেস্কটপ) না থাকায় আমি ভিএম ট্রিকটি ব্যবহার করতে পারি না, তবে এটি দুর্দান্ত শোনায়! আমি কেবল প্রত্যাশা করি পুনরায় যোগদানের পদক্ষেপটি দ্রুত, তবে এটির কোনও এনকোডিং থাকবে না বলে আমি মনে করি এটি হবে। এটি চেষ্টা করতে হবে, THX ভিএম!
অ্যাকোরিয়াস পাওয়ার

যোগদানের সময় এটি একটি সতর্কতা তৈরি করে: "স্ট্রিম 0 এর কোডেক গ্লোবাল শিরোলেখ ব্যবহার করে না তবে ধারক বিন্যাসে গ্লোবাল শিরোনাম প্রয়োজন" তবে চূড়ান্ত ফলাফলটি ব্যবহারযোগ্য ভিডিও, আমি কোনও সমস্যা দেখলাম না
কুম্ভ শক্তি

4

আমি বিরতি দেওয়ার পরিবর্তে সাগস্ট করি, আপনি এনকোডিং প্রক্রিয়াটিকে খুব স্বল্পতম সিস্টেমের অগ্রাধিকার দেন (ওরফে " রিনিস "), যাতে আপনি প্রতিদিন আরামদায়কভাবে কাজ করতে পারেন এবং এনকোডিংটি অব্যবহৃত সিস্টেমের রিসোর্সগুলির সাথে ব্যাকগ্রাউন্ডে স্থান পাবে। সুতরাং আপনার এনকোডিংটি কোনও কাজের বিঘ্ন ছাড়াই, বাধা ছাড়াই 24/7 নির্বিঘ্নে অনুষ্ঠিত হবে

যেমন আফিক ওএসএক্সের পিডোফ কমান্ডের অভাব রয়েছে, আপনাকে ffmpeg প্রক্রিয়া নম্বর (পিআইডি) জানতে হবে

তারপর আপনি করতে পারেন renice সঙ্গে অলস পটভূমি প্রক্রিয়া

sudo renice 20 yourPID

প্রয়োজনে আপনি প্রক্রিয়াটিকে আরও আক্রমণাত্মক অগ্রভাগের অগ্রাধিকারটিতে পুনর্নির্ধারণ করতে পারেন

sudo renice -10 yourPID

ওহে! ভাল পরামর্শ। এটি চেষ্টা করতে হবে।
উইন্টারফ্ল্যাগস


1

(এটি লিনাক্সের জন্য)

আপনারা সবাই সম্ভবত জানেন যে 'q' টিপুন রেকর্ডিং ফাইলটি শেষ করে।

ffplay এর 'p'-সম্ভাবনা রয়েছে। কেন ffmpeg একই জিনিস না? কারণ এটি ভিডিও এবং অডিওর মধ্যে বিভক্ত হতে পারে? ...

আমি ক্রফ (23) এর সাথে x264-aac-mkv এ মাত্র ffmpeg-encode করেছি এবং সর্বদা একই ভিডিও শর্তের সাথে রেকর্ডিংগুলি 'প্রস্থান' (কিউ) রেখেছি এবং নির্দিষ্ট বিভাগে সমস্ত বিভাগগুলিতে যোগদান করি, যেখানে এই স্ক্রিপ্টটি রয়েছে, যেখানে 1 ফাইল রয়েছে এই বাশ স্ক্রিপ্ট সহ স্ট্রিমকপি মোডে:

#!/bin/bash

# FFMPEG MERGE

# File path must be absolutely absolute...

ffmpeg -f concat -safe 0 -i <(printf "file '%s'\n" /home/me/Videos/FFmpeg/FFmpeg_Merge/*.mkv) -c copy merged.mkv

exit 

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

তবে, কোনও ঝামেলা মুক্ত 'বিরতি দিন & পুনরায় শুরু করুন' বোতামটি সত্যই স্বাগত হবে;)


0

এটি কেবল একটি ধারণা, তবে আপনার যদি কিছু বাজেট থাকে তবে প্রসেসরের (৮ ম জেনার ইনটেল থেকে) উন্নত করা বা ভিডিওর কার্ডটি (এনভিআইডিএ জিটিএক্স 1050 বা তদূর্ধ্ব) উন্নত করা ভাল ধারণা হবে যাতে আপনি এনকোড করতে পারবেন h.265 / HEVC সিপিইউ-নিবিড়ের পরিবর্তে হার্ডওয়্যার ত্বরণ সহ x265। আপনার ভিডিও এনকোডিং 20 ঘন্টারও কম সময়ে শেষ হয়ে যাবে, আপনার বিদ্যুতের ব্যয়ও সাশ্রয় করবে।

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