Piszę aplikację czatu z połączeniem wideo za pomocą webRTC. Mam dwa zdalne i lokalne numery MediaStream
, które chcesz scalić i zapisać jako jeden plik. Tak więc przy otwieraniu pliku zobaczę dużą ramkę wideo (strumień zdalny) i małą ramkę wideo w prawym górnym rogu (strumień lokalny). Teraz mogę nagrywać te dwa strumienie oddzielnie, używając RecordRTC. Jak mogę połączyć je z nodejs? (Brak kodu, ponieważ nie wiem, jak to się robi)Scalanie dwóch strumieni wideo i zapisywanie jako jednego pliku
Odpowiedz
Można użyć FFmpeg z -filter_complex
, tutaj jest pracowity i przetestowany przykład używając wersji FFmpeg N-62162-gec8789a:
ffmpeg -i main_video.mp4 -i in_picture.mp4 -filter_complex "[0:v:0]scale=640x480[main_video]; [1:v:0]scale=240x180[in_picture];[main_video][in_picture]overlay=390:10" output.mp4
Więc to, polecenie mówi FFmpeg do zapoznania się z dwóch plików wejściowych, main_video.mp4
i in_picture.mp4
, a następnie wysyła informacje do flagi -filter_complex
...
-filter_complex
flag bierze (pierwsze wejście, pierwszy utwór wideo) [0:v:0]
i skalować ten film, aby być 640x480px i identyfikuje wideo jako [main_video]
, następnie pobiera [1:v:0]
(drugie wejście, ścieżka wideo 0) i zmienia rozmiar wideo na 240x180px na nazwę wideo [in_picture]
, a następnie łączy oba filmy tworząc nakładkę drugiego na x = 390 y = 10.
Następnie zapisuje wyjście do output.mp4
To jest to, co chcesz?
UPDATE: Zapomniałem dodać, wszystko czego potrzebujesz w węźle jest modułem do uruchomienia FFmpeg, istnieje wiele z nich: https://nodejsmodules.org/tags/ffmpeg
- 1. scalanie dwóch plików
- 2. Zapisywanie pliku wideo do pliku OpenCV
- 3. Ruby: Scalanie dwóch hash jako jeden i wartości połączony
- 4. Scalanie dwóch wyrażeń regularnych
- 5. Scalanie dwóch UIImages
- 6. Scalanie dwóch obrazów do jednego obrazu programowo w iphone
- 7. Scalanie dwóch aplikacji rails
- 8. Scalanie dwóch DataFrames
- 9. Scalanie dwóch map
- 10. scalanie dwóch zapytań SELECT
- 11. FFmpeg - Scalanie wideo z przezroczystością
- 12. Scalanie notatek do jednego dokumentu iText
- 13. Scalanie dwóch zestawów wyników statystycznych
- 14. Scalanie dwóch schematów avro programowo
- 15. Mercurial: Scalanie jednego pliku pomiędzy gałęziami w jednym repo
- 16. Jednoczesne przesyłanie strumieniowe i zapisywanie wideo?
- 17. Scalanie dwóch list w R
- 18. Scalanie dwóch obiektów z ES6
- 19. Scalanie dwóch obiektów w PHP
- 20. Zapisywanie ramki danych jako pliku binarnego
- 21. Lua: zapisywanie wartości heksadecymalnych jako pliku binarnego
- 22. Scalanie strumieni map za pomocą Java 8 Lambda Expression
- 23. przy użyciu Nlog i zapisywanie do pliku jako json
- 24. MATLAB - przechwytywanie strumieni wideo (MJPEG, rtsp, mpeg)
- 25. Scalanie kilku rodzimych DLL do jednego DLL
- 26. Tworzenie strumienia Node.js z dwóch potokowych strumieni
- 27. Nakładanie dwóch strumieni kamer internetowych - Matlab
- 28. BASH: Najlepsza architektura odczytu z dwóch strumieni wejściowych
- 29. Scalanie dwóch PNG z przezroczystością i utrzymanie przejrzystości
- 30. Zapisywanie wielu liczb do jednego pliku pdf w matplotlib
Nie wiem, co masz na myśli przez „scalić je z nodejs”. Masz na myśli, że chcesz nagrać pojedynczy film pasujący do ramki w klatce, którą widzisz na ekranie? Nie mam nic, o czym mógłbym się przekonać, choć wydaje mi się, że można zhakować coś na płótnie. –
@SamDutton Mam na myśli właśnie to. Myślałem o używaniu płótna, ale nie byłem pewien. Dzięki za sugestię – karaxuna