Tôi đã sau đây quy định việc triển khai MediaRecorder tôi:ghi cross-platform video sử dụng WebRTC của MediaRecorder
const getMediaRecorderOptions = function() {
var options = { mimeType: "video/webm;codecs=vp8" }; // 9 was lagggy, cpu-intensive
if (!MediaRecorder.isTypeSupported(options.mimeType)) {
logger.recorderLog(options.mimeType + " is not Supported");
options = { mimeType: "video/webm;codecs=vp8" };
if (!MediaRecorder.isTypeSupported(options.mimeType)) {
logger.recorderLog(options.mimeType + " is not Supported");
options = { mimeType: "video/webm" };
if (!MediaRecorder.isTypeSupported(options.mimeType)) {
logger.recorderLog(options.mimeType + " is not Supported");
options = { mimeType: "" };
}
}
}
return options;
}
Rõ ràng, đây là chỉ dành riêng cho webm mà không được hỗ trợ trên iOS Safari hoặc MacOS. Tôi đang cố gắng tránh tăng gấp đôi dung lượng lưu trữ và giới thiệu độ phức tạp của mã hóa. Có cách nào MediaRecorder trên Chrome có thể ghi trực tiếp sang định dạng vùng chứa đa nền tảng, từ bất kỳ nền tảng nào không?
Gọn gàng - Tôi có thể phát những nội dung đó trên iOS/macOS không? Tôi đã có ấn tượng rằng không có thùng chứa webM nào sẽ phát trong Safari/Chrome iOS. – SB2055
Tôi nghi ngờ WebM/H.264 phát trong Safari nhưng về mặt lý thuyết - vì tôi chưa thử - bạn có thể thử thay đổi vùng chứa từ WebM/H.264 sang MP4/H.264 bằng cách sử dụng ffmpeg.js ngay bên trong trình duyệt ghi như một phần của quá trình ghi âm. Vì bạn không chuyển mã - video vẫn là H.264 - nên nó hoạt động tương đối nhẹ. –