निकट-पूर्ण स्क्रीन रिकॉर्डिंग गुणवत्ता कैसे प्राप्त करें?


27

किसी ने सुझाव दिया कि मैं एक फ़ाइल को अनमॉडिफाइड एक्स डिस्प्ले की एक प्रति निर्देशित करता हूं और बाद में उस फ़ाइल को एक सामान्य उद्देश्य वीडियो फ़ाइल में परिवर्तित करता हूं। कुबंटु प्रणाली पर ऐसा करने के लिए मैं किन कमांड का उपयोग करूंगा? (संपादित करें: उन्होंने एक डिस्प्ले पोर्ट को एक फ़ाइल में संलग्न करने के बारे में कुछ कहा। यदि संभव नहीं है, तो एक उत्कृष्ट गुणवत्ता स्क्रीन रिकॉर्डिंग के लिए मेरा सबसे अच्छा विकल्प क्या है जो तेज हार्डवेयर पर निर्भर नहीं करता है?

पृष्ठभूमि: मैंने x11grab -f और कुछ GUI प्रोग्राम के साथ avconv का उपयोग करने की कोशिश की। हालांकि, कोई फर्क नहीं पड़ता कि मैं क्या कोशिश करता हूं, जिसके परिणामस्वरूप वीडियो में कलाकृतियां / धुंधलापन है या तड़का हुआ (लापता फ्रेम) है। यह शायद सीपीयू / मेमोरी की कमी के कारण है।

लक्ष्य:

  • वीडियो गुणवत्ता को स्क्रीन पर सीधे सत्र देखने से अलग नहीं होना चाहिए, क्योंकि उद्देश्य एक एनिमेटेड एप्लिकेशन को प्रदर्शित करना है।
  • अंतिम वीडियो एक सामान्य प्रारूप में होना चाहिए जो विंडोज उपयोगकर्ताओं को भेजा जा सकता है और वेब पर उपयोग किया जा सकता है। मुझे लगता है कि H.264 MP4 को काम करना चाहिए।
  • समाधान को बहुत पहले ज्ञान नहीं मानना ​​चाहिए। मैं कमांड लाइन और बुनियादी लिनक्स कमांड से परिचित हूं, लेकिन मैं अभी भी लिनक्स सीख रहा हूं और वीडियो कोडेक्स के बारे में ज्यादा नहीं जानता।

मैंने पहले से ही क्या प्रयास किया:

  • अब तक का सर्वश्रेष्ठ कमांड:, ffmpeg -f x11grab -s xga -r 30 -i :0.0 -qscale 0.1 -vcodec huffyuv grab.aviफिर mp4 के साथ कनवर्ट करें ffmpeg -i grab.avi -sameq -vcodec mpeg4 grab.mp4
    • चित्र की गुणवत्ता बहुत अच्छी है, लेकिन मेरे परीक्षण में यह कंप्यूटर को पीछे छोड़ देता है। तेजी से लक्ष्य प्रणाली पर यह पीछे नहीं रहता है, लेकिन फ़्रेम स्पष्ट रूप से छोड़ दिया जाता है, जिससे वीडियो बहुत चिकना नहीं होता है
    • मैं अभी भी यह पता लगाने की कोशिश कर रहा हूं कि एसएचएम को ग्रैवी को कैसे बचाया जाए, यह देखने के लिए कि क्या यह मदद करता है।
  • इस्तांबुल और RecordMyDesktop जीयूआई रिकॉर्डर का उपयोग करना
  • सरल आदेश: avconv -f x11grab -s xga -r 25 -i :0.0 simple.mpgएवोकॉन संस्करण 0.8.3-4: 0.8.3-0ubuntu0.12.04.1 का उपयोग करना
  • जोड़ा जा रहा है -codec:copy(के साथ विफल: Requested output format 'x11grab' is not a suitable output format)
  • जोड़ना -same_quant(बड़ी गुणवत्ता में परिणाम, लेकिन बहुत तड़का हुआ / कई फ्रेम गायब)
  • जोड़ा जा रहा है -vpre lossless_ultrafast(के साथ विफल: Unrecognized option 'vpre', Failed to set value 'lossless_ultrafast' for option 'vpre')
  • के विभिन्न मूल्यों को जोड़ना -qscale
  • के विभिन्न मूल्यों को जोड़ना -b
  • जोड़ा जा रहा है -vcodec h264(आउटपुट बार-बार: Error while decoding stream #0:0, [h264 @ 0x8300980] no frame!)
    • नोट: h264 avconv -formatsआउटपुट के रूप में सूचीबद्ध हैDE h264 raw H.264 video format

जवाबों:


24

यदि आपका HDD अनुमति देता है, तो आप इसे इस तरह से करने का प्रयास कर सकते हैं:

पहले असंपीड़ित फ़ाइल लिखें:

ffmpeg -f x11grab -s SZ -r 30 -i :0.0 -qscale 0 -vcodec huffyuv grab.avi

यहां SZआपका प्रदर्शन आकार (उदाहरण 1920x1080) है।

उसके बाद आप इसे किसी भी समय आप चाहते हैं पर संपीड़ित कर सकते हैं:

ffmpeg -i grab.avi grab.mkv

बेशक, आप संपीड़न को बदल सकते हैं, कोडेक का चयन कर सकते हैं और इसी तरह।



6

मुझे इसके साथ सफलता मिली है:

ffmpeg -f x11grab -video_size 1920x1080 -framerate 30 -i :1 \
       -vcodec libx264 -preset ultrafast -qp 0 -pix_fmt yuv444p \
       video.mkv

प्रमुख बिंदु:

  • -qp 0: x264 दोषरहित मोड
  • -प्रकाश अल्ट्राफास्ट: सबसे छोटा सीपीयू उपयोग, बड़े आकार
  • -pix_fmt yuv444p: डिफ़ॉल्ट, लेकिन ffmpeg yuv420p का सुझाव देता है, जो नुकसानदेह है

संकेत: कैप्चर स्क्रीन और वेबकैम ओवरले के साथ:

ffmpeg -f x11grab -thread_queue_size 64 -video_size 1920x1080 -framerate 30 -i :1 \
       -f v4l2 -thread_queue_size 64 -video_size 320x180 -framerate 30 -i /dev/video0 \
       -filter_complex 'overlay=main_w-overlay_w:main_h-overlay_h:format=yuv444' \
       -vcodec libx264 -preset ultrafast -qp 0 -pix_fmt yuv444p \
       video.mkv

https://trac.ffmpeg.org/wiki/Capture/Desktop

[20180418 संपादित करें] सूक्ति शैल और वायलैंड के लिए अपडेट:

#!/usr/bin/env python3
from dbus import SessionBus, Interface
from os import getcwd, path
from sys import argv

BUS_NAME = 'org.gnome.Shell.Screencast'
PATH_NAME = '/org/gnome/Shell/Screencast'
INTERFACE_NAME = BUS_NAME
PIPELINE='x264enc pass=qual quantizer=0 speed-preset=ultrafast ! queue ! matroskamux'

if path.isabs(argv[1]):
    name = argv[1]
else:
    name = path.join(getcwd(), argv[1])

bus = SessionBus()
screen_cast = bus.get_object(BUS_NAME, PATH_NAME)
screen_cast = Interface(screen_cast, INTERFACE_NAME)

ret, name = screen_cast.Screencast(name, {'pipeline': PIPELINE})

if not ret:
    print('Error starting screencast.')
    raise SystemExit(1)

try:
    i = input()
except (EOFError, KeyboardInterrupt):
    pass
finally:
    screen_cast.StopScreencast()

1

क्या आपने rfbroxy की कोशिश की है ?

मैं इसे X11 स्क्रीन-सेशन रिकॉर्ड करने के लिए उपयोग करता हूं।

आप इसे एक मोड में उपयोग कर सकते हैं जहां यह केवल एक तस्वीर रिकॉर्ड करता है, अगर कोई CHANGE हो।


1

यह एक वर्कअराउंड है, और शायद "निकट-परिपूर्ण" नहीं है क्योंकि यह नेटवर्क की गति या अन्य कारकों पर निर्भर हो सकता है जो वीडियो स्ट्रीम में बाधा बन सकते हैं।

वीएनसी या टीमव्यूअर का उपयोग करें और अपने लैपटॉप या डेस्कटॉप से ​​दूसरी मशीन से कनेक्ट करें। यदि आपके पास एक विंडोज़ या ओएसएक्स लैपटॉप उपलब्ध है, तो आपके पास संभवतः ऐसे उपकरण हैं जो इसे रिकॉर्ड कर सकते हैं, और मेरा मानना ​​है कि टीमव्यूअर खुद एक सत्र रिकॉर्ड कर सकता है। यह कोशिश करना आसान है, और आप यह तय कर सकते हैं कि क्या गुणवत्ता काफी अच्छी है।

टीमव्यूअर पैमाने पर जाता है, लेकिन मुझे नहीं पता कि यह रिकॉर्ड किए गए सत्रों के साथ भी होता है।

VNC कंप्रेस या स्केल नहीं करता है, और आपके लैपटॉप / डेस्कटॉप मॉनिटर को अन्य मशीन की तुलना में अधिक रिज़ॉल्यूशन की आवश्यकता होती है। गुणवत्ता अच्छी है। हो सकता है कि आपके द्वारा उपयोग किया जाने वाला वीएनसी दर्शक रिकॉर्ड कर सके। मैं अब उबंटू पर हूं, और मानक दर्शक ऐसा नहीं कर सकता।

दर्शकों या वेब पर प्रदर्शित करने के लिए स्क्रीन रिकॉर्डिंग - इसके लिए विशेष उपकरण हैं जो माउस पर क्लिक, अनुसरण और ज़ूम पकड़ सकते हैं, और आपके पास और स्पष्ट करने के लिए अन्य विकल्प हैं कि आप क्या कर रहे हैं। मेरा सुझाव है कि आप उन पर भी एक नज़र डालें। Google "स्क्रीन रिकॉर्डिंग सॉफ़्टवेयर" के लिए।


0

मैं अपने गेमप्ले वीडियो और ऑनलाइन वीडियो रिकॉर्ड करने के लिए Camtasia का उपयोग कर रहा हूं। मैंने पहले भी वीडियो रिकॉर्डर का उपयोग किया था, लेकिन खेलने के दौरान एफपीएस ड्रॉप। Camtasia एक उच्च एफपीएस देता है, लेकिन केवल परेशानी का मुद्दा यह है कि हर बार मुझे आउटपुट को परिवर्तित करना होगा। AVREC को avi के रूप में आप यहां दर्ज लिंक विवरण में देख सकते हैं यहां लिंक विवरण दर्ज करें । .Camrec, Camtasia का मालिकाना प्रारूप है और इसे किसी भी तृतीय-पक्ष के खिलाड़ी जैसे Windows Media Player और vlc पर नहीं चलाया जा सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.