Phần mềm ghi màn hình lossless


8

Đối với một dự án nhỏ của tôi, tôi muốn ghi lại các màn hình ngắn thể hiện các tính năng của chương trình của tôi. Hiện tại, tôi đang sử dụng một ứng dụng nhỏ trên hộp Ubuntu để tạo đầu ra gif hoạt hình trực tiếp. Hạn chế là, gif đó có một số hạn chế về số lượng màu sắc. Nếu bạn kiểm tra một số gifs bạn có thể lưu ý rằng mặc dù nó trông rất tuyệt, nhưng nó không hoàn hảo, đặc biệt là khi bạn nhìn vào các phông chữ bí danh

hoạt hình gif

Có một số giải pháp thủ công, ví dụ như trình diễn trên trang web văn bản cao siêu . Để có một cái gì đó đẹp, trước tiên bạn cần ghi lại màn hình của bạn hoàn toàn không bị mất. Hầu hết các chương trình truyền màn hình tôi biết không may làm nén video.

Câu hỏi: Tôi có Ubuntu và OSX theo ý của tôi, những giải pháp đúc màn hình nào (nếu có thể miễn phí) tồn tại cho phép tôi tạo các video không mất dữ liệu?

Tín dụng thêm cho các chương trình nơi tôi có thể chọn vùng hoặc cửa sổ để ghi và tắt âm thanh.

Cập nhật

Để làm rõ những gì tôi muốn nói với lossless: Thông thường, video được nén bằng một phương pháp hoàn hảo cho hình ảnh / video tự nhiên nhưng thật kinh khủng cho hình ảnh / video có các cạnh sắc nét và cấu trúc một màu . Tôi đã tạo hai màn hình và phóng to một phần nhỏ để có thể nhìn thấy các hiệu ứng đó. Cái đầu tiên được thực hiện với gtk-recordmydesktop với chất lượng cao nhất và các tạo tác trong vùng màu xám có thể nhìn thấy rõ

nhập mô tả hình ảnh ở đây

Công cụ thứ hai được thực hiện với công cụ Record your Desktop nhỏ để lưu tệp gif trực tiếp và lấy các pixel chính xác của màn hình mà không cần nén.

nhập mô tả hình ảnh ở đây

Những gì tôi muốn là một caster màn hình lưu video của nó ở định dạng thô này mà không có giới hạn của gif.

Có thể các câu hỏi liên quan:


Tôi đã xóa câu trả lời của mình cho thấy gtk-recordMyDesktop vì chất lượng đầy đủ của nó không phải là mất mát. Tôi chỉ không chắc là nó có làm hay không. Tôi không có máy Linux để kiểm tra một cách đáng tiếc. Bây giờ tôi biết, cảm ơn vì đã cho tôi biết nó không phù hợp với nhu cầu của bạn.
AJ Henderson

@AJHenderson Tôi sẽ vui mừng về bất kỳ chương trình nào cả Linux hoặc MacOSX. Đặc biệt đối với Mac dường như tồn tại rất nhiều công cụ nhỏ nhưng tôi phải có thời gian để thử tất cả chúng và chúng không bao giờ quảng cáo có thể ghi lại sự mất mát .
halirusan

Câu trả lời:


7

FFmpeg với một codec không mất dữ liệu là một giải pháp. Tôi nhớ lại một so sánh các codec khác nhau đã kết luận rằng Apple Animation (được biết đến với tên ffmpeg qtrle) đã cho chất lượng tốt nhất để ghi lại màn hình.

ffmpeg -f x11grab -r 25 -s 1024x768 -i :0.0 -c:v qtrle output.mov

Dừng nó bằng cách mở thiết bị đầu cuối của nó trong khi nó đang chạy và nhấn q. Rõ ràng thay đổi độ phân giải (1024x768 ở đây) để phù hợp với chính bạn. Để chọn một phần trên màn hình của bạn, hãy xem cách lấy màn hình trên wiki ffmpeg.

Có thể là bản ffmpegđi kèm với bản phân phối Linux của bạn không có qtrlecodec đi kèm. Trong trường hợp này, bạn phải tải xuống và biên dịch phiên bản của riêng bạn.


Tôi cũng nghe nói về Apple Animation . Hãy để tôi thử điều này.
halirusan

+1 Hoạt động hoàn hảo. Chúng ta hãy chờ xem ai đó nghĩ ra một chương trình phi lệnh. Nếu không, đây sẽ là câu trả lời được chấp nhận của tôi.
halirusan

Nếu không ai gợi ý bất cứ điều gì và bạn thực sự muốn có giao diện GUI, thì đối với tôi, đây có vẻ là một nhiệm vụ đơn giản cho người có kiến ​​thức về GUI (không phải tôi: v), vì vậy bạn có thể tìm thấy ai đó sẵn sàng để đánh một giao diện đơn giản với nhau trong nửa giờ với giá cả hợp lý, thậm chí có thể trên trò chuyện.SE
evilsoup

Điều này sẽ không hoạt động trên OS X, điều này thật đáng buồn.
Tên hiển thị

Vâng, chỉ muốn cảm ơn bạn một lần nữa cho câu trả lời này. Tôi đang sử dụng OBS với qtrlemã hóa để tạo một tệp .mov hoàn hảo. Sau đó, tôi trích xuất các khung hình và sử dụng hình ảnh ảo thuật để xây dựng một gif hoạt hình rất nhỏ và cực kỳ đẹp. Ưu điểm của OBS là, bạn dễ dàng đặt độ phân giải đầu ra và cửa sổ hoặc một phần màn hình nào bạn muốn ghi. Nó cho phép bạn kết hợp một số khu vực ghi âm và âm thanh dễ dàng. Hiếm khi thấy một cái gì đó như thế trên Linux!
halirusan

3

Ngoài ra, chuyển đầu ra màn hình của bạn sang máy tính thứ hai để ghi lại, sử dụng một thiết bị như Blackmagic Intense. Nó hỗ trợ chụp ở định dạng hoàn toàn không nén (đảm bảo bạn có SSD hoặc thiết lập RAID để ghi vì tốc độ bit rất cao).

Vì vậy, máy tính đang làm việc trên nên có đầu ra màn hình kép - phản chiếu màn hình để một đầu ra đi tới màn hình của bạn, còn lại cho PC có thẻ BlackMagic PCIe (hoặc USB 3.0), ghi lại đầu ra. Sử dụng DVI / HDMI, không phải VGA.

Lưu ý, Cường độ chỉ hỗ trợ độ phân giải loại video, do đó, độ phân giải như 1024x768 hoặc 1024x1024, v.v. là không tốt - 480p, 720p, 1080p, v.v. là những gì bạn sẽ cần phản chiếu màn hình của mình ở (LCD 21 "1080p $ 99 dù sao đi nữa).

Sau đó, bạn có thể chỉnh sửa và nén video thô theo bất kỳ cách nào bạn muốn.


Hehe, tôi nghĩ rằng đây là cách quá mức cần thiết nhưng +1 cho câu trả lời. Tôi cần một cái gì đó nhanh chóng mà tôi có thể sử dụng khi tôi đã phát triển tính năng tạo màn hình.
halirusan

2

Tôi đã có những yêu cầu rất giống nhau và cuối cùng được tìm thấy trên Claquette .
Đây là một ứng dụng OS X sử dụng codec không mất dữ liệu. Mặc dù nó không cho phép bạn xác định vùng màn hình trước khi ghi, nhưng nó có tính năng cắt cho phép bạn chọn vùng sau khi ghi xong. Âm thanh cũng có thể được tắt. Phim có thể được xuất ra ở nhiều định dạng khác nhau (bao gồm h.264, ProRes và Animated GIF).


1
Có vẻ như một chương trình nhỏ tốt. Hiện tại, tôi đang thực hiện các gif nhỏ của mình với Kazam đi kèm với Ubuntu. Sau đó, tôi đang sử dụng một tập lệnh nhỏ được xây dựng từ câu trả lời được chấp nhận để tạo ra các gif nhỏ và chất lượng cao. +1
halirusan

2

Trên OS X, có vẻ như ScreenFlow có thể ghi lại lossless (không phải mặc định, nhưng điều này có thể được kích hoạt trong cài đặt). Thật không may, ứng dụng này không miễn phí. Vẫn đang tìm giải pháp thay thế miễn phí

Cập nhật quan trọng!

Điều này chỉ áp dụng cho Screenflow 4.5.3 (và có thể một số phiên bản trước đó). Trong Screenflow 5, tính năng này không còn nữa. Họ quảng cáo như họ có thể ghi âm lossless, nhưng đây là một lời nói dối trắng trợn: chế độ "lossless" đang sử dụng Apple ProRes, không phải là lossless (và tôi đã thử nghiệm đầu ra, nó thực sự có tạo tác) và không có cách nào để chọn một số codec khác (trong Screenflow 4.5.3, chế độ lossless đạt được bằng cách sử dụng codec "Animation" qtrle, trong Screenflow 5 không có cách nào để làm điều này)

Vì vậy, tạm biệt, hoàng tử ngọt ngào.

Cập nhật 2

ffmpeg cũng có thể ghi lại màn hình, nếu bạn học cách sử dụng đúng cách.


Btw, tôi đã mua lại ScreenFlow khi bạn đăng câu trả lời. Ngay cả khi tôi không sử dụng nó để tạo các gif hoạt hình nhỏ mà câu hỏi này nhắm đến, nó vẫn là một trình quét màn hình rất đẹp có nhiều tính năng hay.
halirusan

^ btw, người ta chỉ có thể chọn một từ "gif" và "nhỏ". gif là một nén rất không hiệu quả.
Tên hiển thị

Tôi sẽ sử dụng Screenflow cho việc này. Tôi đã có phiên bản 8 và nó xuất ProRes 4444 với kích thước 100%, rất hiệu quả cho hầu hết các mục đích.
tomh

tốt, nó không thực sự mất mát, và câu hỏi chỉ là về lossless
Tên hiển thị

1

Đây là một tùy chọn không phải là dòng lệnh.

Hãy thử Collaaj ( http://collaaj.com ). Hoạt động trên PC và Mac. Nó không hoạt động trên Ubuntu, nhưng vì bạn đã đề cập rằng bạn có OSX, nên nó hoạt động tốt. Tôi nghĩ rằng nó nên làm những gì bạn yêu cầu và nhiều hơn nữa. Chẳng hạn như lựa chọn khu vực, chọn đầu vào, v.v., và nó cũng cho phép bạn tải lên và duy trì các bản ghi của mình trên collaaj.com để truy cập bất cứ lúc nào. Họ có một bộ video đẹp ở đây - http://collaaj.com/ideo


Bạn có thể thực sự ghi lại các cửa sổ của màn hình của bạn với công cụ này? Tôi chỉ thấy rằng họ cuộn qua các tập tin powerpoint hoặc pdf. Hơn nữa, tôi cần trích xuất các khung của video, điều đó có nghĩa là tôi cần có thể lưu trữ video cục bộ. Có vẻ như các công cụ này tải nó trực tiếp để chia sẻ nó, phải không?
halirusan

Halirusan, 1. có, trên PC và Mac, bạn có thể ghi lại toàn bộ màn hình. Bạn thậm chí có thể thay đổi cài đặt giữa 720P và 1080P, bạn cũng có thể thực hiện màn hình + camera cùng một lúc.
Video Junkie

Halirusan, liên quan đến câu hỏi thứ hai của bạn, Collaaj lưu trữ video cục bộ ở định dạng mp4, ngoài việc cung cấp cho bạn tùy chọn tải lên đám mây và chia sẻ dưới dạng URL. Nó rất toàn diện.
Video Junkie

Video này giải thích rõ ràng - collaaj.com/9rE17cT
Video Junkie

0

Nếu bạn cần một cái gì đó ít phức tạp hơn, hãy thử rec, đó là của tôi :) https://sites.google.com/site/joopeter/

Nó cũng miễn phí, không mất mát nhưng hiệu quả và chính xác hơn!


Như tôi đã viết, tôi có OSX và Ubuntu theo ý của tôi. Chương trình của bạn dành cho Windoze XP trở lên .
halirusan

0

Xin thứ lỗi cho sự chậm trễ của tôi đến bữa tiệc, đây là điều mà tôi đã làm việc với việc ghi lại màn hình lossless muộn

Ban đầu tôi đã sử dụng OBS để ghi lại màn hình của mình trong suốt năm 2019 chủ yếu để tải lên các bản ghi / truyền màn hình lên youtube, tuy nhiên gần đây tôi đã bắt đầu thử nghiệm sử dụng ffmpeg để ghi lại màn hình của mình và mic chưa thử nghiệm ghi âm thanh trên máy tính để bàn .

Tôi đã bắt đầu với cài đặt vanilla ffmpeg để ghi lại màn hình của mình, nhưng cài đặt GOP stock của bản ghi khiến nó cực kỳ đau đớn khi chỉnh sửa bản ghi trong trình chỉnh sửa NLE / NLA như shotcut để tôi quay lại và đọc lại tài liệu chụp màn hình trên wiki ffmpeg , và nhận thấy rằng các bản ghi âm màn hình có thể được chụp lossless sử dụng các codec x264 miễn là -crf 0các CRF được thiết lập để 0 mà tôi tin rằng phương tiện ffmpeg sẽ sử dụng bộ giải mã x264 sẽ không áp dụng bất kỳ nén lossy đoạn ghi âm. Ngoài ra wiki đề nghị sử dụng -preset ultrafastkết hợp với -crf 0cài đặt lệnh ffmpeg. Tôi đã thử nghiệm với các cài đặt này tối qua và chất lượng hình ảnh / kích thước tệp là tuyệt vời.

Tôi đã ghi lại màn hình 4K 3840 x 2160 màn hình của mình ở tốc độ 30 khung hình / giây và tốc độ bit hoàn toàn có thể quản lý được, tức là. Tôi không nghĩ nó đã vượt quá 10MB / giây và thời gian ghi một phút là ~ 48 MB, đây là kích thước tệp hoàn toàn chấp nhận được để lưu trữ các bản ghi.

Hãy cẩn thận

  • rõ ràng nếu bạn không thích sử dụng một dòng lệnh thì điều này có thể sẽ không dành cho bạn, vì tôi thấy việc dựa vào GUI để giao diện với ffmpeg không phải là một điều khả thi vì hầu hết các GUI tôi đã thử nghiệm đã lỗi thời.
  • Ngoài ra, hiện tại tôi có vấn đề với việc ghi mic và màn hình âm thanh cùng một lúc theo một quy trình / lệnh ffmpeg duy nhất, vì vậy tôi phải chia lệnh thành hai lệnh riêng biệt / được xử lý và khởi động chúng đồng thời để giữ cho âm thanh / video được đồng bộ hóa.
    • Tôi chạy macOS 10.13.6 và tôi đang sử dụng trình điều khiển web Nvidia vì vậy đó có thể là vấn đề tại sao tôi xử lý ffmpeg / lệnh duy nhất của màn hình ghi âm và mic đồng thời bị lỗi. Không hoàn toàn chắc chắn vấn đề là gì. 🤷♂️
  • Tôi chưa đưa ra giải pháp để ghi lại âm thanh trong một codec không mất dữ liệu, nhưng đó chắc chắn sẽ là nhiệm vụ tiếp theo của tôi để nghiên cứu
  • Ngoài ra, tôi muốn chuyển đổi tất cả các bản ghi trước ffmpeg & OBS bằng kỹ thuật mới này để bảo quản chúng cho mục đích lưu trữ.

Bạn đề cập đến việc chuyển đổi bản ghi của mình thành GIF động, tôi đã sử dụng dự án sau đây để chuyển đổi bản ghi màn hình nhỏ thành GIF sẽ chỉ hoạt động với bản ghi dựa trên thiết bị đầu cuối và đã có kết quả dễ chịu khi sử dụng. Nó thậm chí còn có một thùng chứa docker giúp sử dụng nó khá đơn giản cho các hệ điều hành khác nhau.

Tôi đã thử nghiệm sử dụng ffmpeg để chuyển đổi và ghi lại iPhone thành GIF hoạt hình trong một thời gian trước, điều này rất hữu ích để tải GIF lên github vì tôi tin rằng github không hỗ trợ tải lên các tệp video như Mov mkv hoặc mp4 .

Ngoài ra, tôi đã tìm kiếm nhanh trên codec QTRLE và có vẻ như nó không tương thích với định dạng chứa MP4 , vì vậy nếu sử dụng một thứ gì đó không phải là MOV, bạn có thể xem xét sử dụng một codec khác.

Command lệnh dưới đây sẽ yêu cầu được cài đặt đồng thời .

concurrently --kill-others \ 
"ffmpeg -f avfoundation -capture_cursor 1 \
-capture_mouse_clicks 1 \
-framerate 30 
-i "1:" -c:v libx264 -crf 0 -preset ultrafast \
lossless-screen-rec.mkv 2>/dev/null" \
"ffmpeg -f avfoundation -i ":3" \
-acodec alac \
lossless-mic-.m4a 2>/dev/null"

lệnh trên sẽ chụp màn hình máy tính một cách dễ dàng bằng x264 và sử dụng alac để thu tín hiệu đầu vào micrô một cách dễ dàng. cả hai định dạng đều hoạt động tốt để chỉnh sửa trong trình chỉnh sửa NLA / NLE như shotcut.

⚠️ ":3"1:sẽ khác nhau cho mỗi hệ thống chạy hệ điều hành MacOS

Để có danh sách các thiết bị chụp trên macOS

ffmpeg -f avfoundation -list_devices true -i ""

Dù sao tôi biết đây là rất nhiều thông tin, nhưng tôi nghĩ tôi đã chia sẻ thông tin này vì thực tế là tôi đã sử dụng ffmpeg gần như hàng ngày trong vài tuần qua nên tôi nghĩ tôi đã chia sẻ những gì tôi đã học được, và để lại thông tin này đối với tôi trong tương lai 👴🏻


Chào mừng bạn Bạn có thể chia sẻ một lệnh ffmpeg hoàn chỉnh? Điều đó sẽ giúp người đọc trong tương lai có thể sử dụng câu trả lời của bạn dễ dàng hơn rất nhiều.
Michael Liebman
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.