Ffmpeg ব্যবহার করে স্ক্রিন কাস্টিং (খুব দ্রুত)


9

আমি স্ক্রিন ক্যাসেটগুলি তৈরি করতে ffmpeg ব্যবহার করতে পারি:

ffmpeg -f x11grab -s 1280x800 -i :0.0 -c:v libx264 -framerate 30 -r 30 -crf 18 out.mkv

তবে আউটপুটটি খুব দ্রুত গতিযুক্ত হতে পারে। এটি GTK RecordMyDesktopআমি যদি ফ্লাইতে এনকোড সক্ষম করি তা দিয়েও ঘটে । সুতরাং, প্রশ্নগুলি হল কীভাবে একটি সাধারণ ভিডিও গতি পাবেন। এছাড়াও ffmpeg সহ শব্দটি ক্যাপচার করার জন্য কোন বিকল্পটি ব্যবহার করা উচিত?

FFmpeg আউটপুট:

    ffmpeg -f x11grab -s 1280x800 -r 30 -i :0.0 -c:v libx264 -framerate 30 -r 30 -crf 18 out.mkv
ffmpeg version N-35162-g87244c8 Copyright (c) 2000-2012 the FFmpeg developers
  built on Oct  7 2012 15:56:19 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
  configuration: --enable-gpl --enable-libfaac --enable-libfdk-aac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-x11grab --enable-libx264 --enable-nonfree --enable-version3
  libavutil      51. 73.102 / 51. 73.102
  libavcodec     54. 64.100 / 54. 64.100
  libavformat    54. 29.105 / 54. 29.105
  libavdevice    54.  3.100 / 54.  3.100
  libavfilter     3. 19.102 /  3. 19.102
  libswscale      2.  1.101 /  2.  1.101
  libswresample   0. 16.100 /  0. 16.100
  libpostproc    52.  1.100 / 52.  1.100
[x11grab @ 0xab896a0] device: :0.0 -> display: :0.0 x: 0 y: 0 width: 1280 height: 800
[x11grab @ 0xab896a0] shared memory extension found
[x11grab @ 0xab896a0] Estimating duration from bitrate, this may be inaccurate
Input #0, x11grab, from ':0.0':
  Duration: N/A, start: 1350136942.608988, bitrate: 983040 kb/s
    Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1280x800, 983040 kb/s, 30 tbr, 1000k tbn, 30 tbc
[libx264 @ 0xab87320] using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64 SlowCTZ SlowAtom
[libx264 @ 0xab87320] profile High 4:4:4 Predictive, level 3.2, 4:4:4 8-bit
[libx264 @ 0xab87320] 264 - core 128 r2 198a7ea - H.264/MPEG-4 AVC codec - Copyleft 2003-2012 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=4 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=18.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, matroska, to 'out.mkv':
  Metadata:
    encoder         : Lavf54.29.105
    Stream #0:0: Video: h264, yuv444p, 1280x800, q=-1--1, 1k tbn, 30 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo -> libx264)
Press [q] to stop, [?] for help
frame=   10 fps=0.0 q=0.0 size=       1kB time=00:00:00.00 bitrate=   0.0kbits/sframe=   19 fps= 17 q=0.0 size=       1kB time=00:00:00.00 bitrate=   0.0kbits/sframe=   28 fps= 17 q=0.0 size=       1kB time=00:00:00.00 bitrate=   0.0kbits/sframe=   37 fps= 17 q=0.0 size=       1kB time=00:00:00.00 bitrate=   0.0kbits/sframe=   45 fps= 16 q=0.0 size=       1kB time=00:00:00.00 bitrate=   0.0kbits/sframe=   47 fps= 14 q=0.0 size=       1kB time=00:00:00.00 bitrate=   0.0kbits/sframe=   52 fps= 13 q=24.0 size=     257kB time=00:00:00.00 bitrate=2101632.0kbiframe=   55 fps= 12 q=24.0 size=     257kB time=00:00:00.10 bitrate=20808.2kbitsframe=   59 fps= 11 q=24.0 size=     289kB time=00:00:00.23 bitrate=10145.0kbitsframe=   64 fps= 11 q=24.0 size=     289kB time=00:00:00.40 bitrate=5894.7kbits/frame=   70 fps= 11 q=24.0 size=     289kB time=00:00:00.60 bitrate=3933.1kbits/frame=   72 fps= 10 q=24.0 size=     289kB time=00:00:00.66 bitrate=3549.2kbits/frame=   77 fps=9.8 q=24.0 size=     289kB time=00:00:00.83 bitrate=2837.7kbits/frame=   80 fps=9.6 q=24.0 size=     289kB time=00:00:00.93 bitrate=2533.5kbits/frame=   85 fps=9.3 q=24.0 size=     289kB time=00:00:01.10 bitrate=2146.9kbits/frame=   89 fps=9.3 q=24.0 size=     289kB time=00:00:01.23 bitrate=1917.1kbits/frame=   92 fps=9.1 q=24.0 size=     289kB time=00:00:01.33 bitrate=1773.3kbits/frame=   96 fps=9.0 q=24.0 size=     289kB time=00:00:01.46 bitrate=1612.4kbits/frame=   99 fps=8.8 q=24.0 size=     321kB time=00:00:01.56 bitrate=1676.8kbits/frame=  104 fps=8.7 q=24.0 size=     321kB time=00:00:01.73 bitrate=1515.2kbits/frame=  109 fps=5.3 q=24.0 Lsize=    1093kB time=00:00:03.56 bitrate=2511.5kbits/s    
video:1092kB audio:0kB subtitle:0 global headers:0kB muxing overhead 0.120198%
[libx264 @ 0xab87320] frame I:3     Avg QP:18.93  size:142610
[libx264 @ 0xab87320] frame P:43    Avg QP:20.79  size: 15751
[libx264 @ 0xab87320] frame B:63    Avg QP:23.75  size:   195
[libx264 @ 0xab87320] consecutive B-frames: 21.1%  1.8% 11.0% 66.1%
[libx264 @ 0xab87320] mb I  I16..4: 50.0% 21.1% 28.9%
[libx264 @ 0xab87320] mb P  I16..4:  6.1%  0.9%  3.2%  P16..4:  5.5%  1.2%  0.6%  0.0%  0.0%    skip:82.5%
[libx264 @ 0xab87320] mb B  I16..4:  0.4%  0.1%  0.0%  B16..8:  2.9%  0.1%  0.0%  direct: 0.0%  skip:96.5%  L0:40.7% L1:57.0% BI: 2.3%
[libx264 @ 0xab87320] 8x8 transform intra:14.5% inter:46.1%
[libx264 @ 0xab87320] coded y,u,v intra: 33.5% 24.1% 25.4% inter: 0.9% 0.4% 0.4%
[libx264 @ 0xab87320] i16 v,h,dc,p: 70% 26%  1%  3%
[libx264 @ 0xab87320] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 11% 21% 30%  5%  7%  5%  7%  4% 10%
[libx264 @ 0xab87320] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 32% 35% 12%  2%  4%  3%  4%  3%  5%
[libx264 @ 0xab87320] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0xab87320] ref P L0: 57.0%  5.6% 26.8% 10.6%
[libx264 @ 0xab87320] ref B L0: 69.4% 22.6%  8.0%
[libx264 @ 0xab87320] ref B L1: 93.7%  6.3%
[libx264 @ 0xab87320] kb/s:2460.40

-f alsa -i pulseআপনার অডিও ইনপুট পাওয়া উচিত। আপনি কি আমাদের সম্পূর্ণ, আনক্ট কমান্ড লাইন আউটপুটটি দিতে পারেন?
12 '

1
আমি দেখতে x11grabএকটি -framerateবিকল্প আছে । এটি এনটিএসসিতে ডিফল্ট, সুতরাং আপনি সম্ভবত ব্যবহার করতে পারেন -framerate 30এবং -r 30সংমিশ্রণে আউটপুট জন্য?
slhck

@ স্লহ্যাক, ধন্যবাদ পোস্টটি আপনার পরামর্শ অনুসারে আপডেট করা হয়েছে, তবে একই সমস্যা। আমার কম্পিউটারও তেমন দ্রুত নয়।
রোউম্যান

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

আমি বিশ্বাস করি যে সমস্যাটি প্রথমটি -r 30যার অর্থ "আগত ডেটা টাইমস্ট্যাম্পগুলিকে উপেক্ষা করুন এবং এটির মতো আচরণ করুন যেন এটি ঠিক 30 fps ছিল" পরিবর্তে 30-ফ্রেমারেট 30 "চেষ্টা করুন
রোজারডপ্যাক

উত্তর:


5

স্ক্রিনটি ক্যাপচার করতে লসলেস এনকোডার ব্যবহার করার চেষ্টা করুন এবং তারপরে আপনি যদি একটি ছোট ফাইল তৈরি করতে শেষ করেন তবে আউটপুটটিকে পুনরায় এনকোড করুন desired এই পদ্ধতির সুবিধাটি প্রায়শই একটি নিবিড় ক্যাপচারিং প্রক্রিয়া হয় যার ফলে "দ্রুত" ক্যাপচার ফ্রেমের হার হতে পারে। অবশ্যই ফলাফল বিভিন্ন হতে পারে।

ffmpeg -f x11grab -s 1280x800 -i :0.0 -c:v libx264 -preset ultrafast -crf 0 out.mkv

এটি সম্ভব যে আপনার সিপিইউতে কেবল কোনও নির্দিষ্ট স্ক্রিন ক্যাপচার আকারে আপনার ঘোষিত ফ্রেম রেটে এনকোড করার ক্ষমতা থাকে না। সেক্ষেত্রে আপনি একটি ছোট -sমান চেষ্টা করতে পারেন । এটি অন্যান্য ক্ষতিকারক এনকোডারগুলির যেমন হাফিউউভ, এফএফভি 1, বা ইউটিভিডিওর সাথে পরীক্ষা করার উপযুক্ত হতে পারে তবে আমি ব্যক্তিগতভাবে এগুলি স্ক্রিনকাস্টগুলির জন্য চেষ্টা করি নি।

অধিক তথ্য:


দেখে মনে হচ্ছে যে আপনি উল্লেখ করেছেন যে অন্যান্য ক্ষতিহীন কোডেকগুলি x264 এর তুলনায় কম রিসোর্স নিবিড়। এর পরে আরও নির্ভুলভাবে মন্তব্য করবে।
রোউম্যান

1
@ আরম্যান প্রায় কোনও এনকোডার হ'ল এক্স 264৪ (বা সাধারণত, h.264 এনকোডার) এর চেয়ে কম রিসোর্স নিবিড়, যা কেবল এনকোডে সময় নেওয়া বনাম সময় সম্পর্কিত মানের বিষয়। এই কারণেই রিয়েল-টাইম এনকোডিংয়ের ক্ষেত্রে অনেক ব্যবহারকারী এখনও XviD বা অনুরূপভাবে আঁকড়ে থাকেন।

| @ এসএলএইচকে গুড পয়েন্ট ধারকগুলি কি সম্পদগুলিতে কোনও প্রভাব ফেলবে? এবং উত্সের ক্ষেত্রে বিভিন্ন লসলেস ভিডিও কোডেকের তুলনায় কোনও সাহিত্য আছে কি? তাদের প্রায় সবাই দ্রুততম বলে দাবি করে।
রোউম্যান

@ আরম্যান আপনি কি আমার উদাহরণটি ব্যবহার করে দেখেছেন? লসলেস আউটপুট তৈরি করতে x264 ব্যবহার করে আমার তালিকাভুক্ত অন্যান্য এনকোডারগুলির তুলনায় কিছুটা অনুরূপ পারফরম্যান্স দেওয়া উচিত। কিছুটা ধীর হতে পারে; সম্ভবত কিছুটা দ্রুত, তবে আমি কল্পনা করি যে পার্থক্যগুলি বিবেচ্য নয়।
লগন

@ লর্ডনেকবার্ড, হ্যাঁ আমি করেছি। আপনার উদাহরণের x264 এর আমার সিপুতে 60-70% ওভারলোড রয়েছে যখন হাফিউভ, উতভিডিও, এফএফভি 1 এর গড় 25-25% থাকে। আমার
দৃ solid়
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.