я использую
https://github.com/muaz-khan/WebRTC-Experiment/tree/master/RecordRTC/RecordRTC-to-PHP
сделать видеорегистратор.
Это делает два разных файла один для аудио и один для видео.
Я хочу объединить два файла и сделать один файл mp4.
Они дали код слияния, но он показывает ошибку.
Их код:
'Win16', 'Windows 95' => '(Windows 95) | (Win95) | (Windows_95)', 'Windows 98' => '(Windows 98) | (Win98)', 'Windows 2000' => '(Windows NT 5.0) | (Windows 2000)', 'Windows XP' => '(Windows NT 5.1) | (Windows XP)', 'Windows Server 2003' => '(Windows NT 5.2)', 'Windows Vista' => '(Windows NT 6.0)', 'Windows 7' => '(Windows NT 7.0)', 'Windows NT 4.0' => '(Windows NT 4.0) | (WinNT4.0) | (WinNT) | (Windows NT)', «Windows ME» => «Windows ME», 'Open BSD' => 'OpenBSD', 'Sun OS' => 'SunOS', 'Linux' => '(Linux) | (X11)', 'Mac OS' => '(Mac_PowerPC) | (Macintosh)', 'QNX' => 'QNX', 'BeOS' => 'BeOS', 'OS / 2' => 'OS / 2', 'Search Bot' => '(nuhk) | (Googlebot) | (Yammybot) | (Openbot) | (Slurp) | (MSNBot) | (Ask Jeeves / Teoma) | (ia_archiver)' ); // Цикл по массиву пользовательских агентов и соответствующих операционных систем foreach ($ OSList as $ CurrOS => $ Match) { // Найти совпадение if (eregi ($ Match, $ _SERVER ['HTTP_USER_AGENT'])) { // Мы нашли правильное совпадение перерыв; } } // если это аудио-блоб if (isset ($ _ FILES ["audio-blob"])) { $ uploadDirectory = 'uploads /'.$_ POST ["имя файла"].'. wav '; if (! move_uploaded_file ($ _ FILES ["audio-blob"] ["tmp_name"], $ uploadDirectory)) { echo («Проблема записи аудио файла на диск!»); } еще { // если это видео-блоб if (isset ($ _ FILES ["video-blob"])) { $ uploadDirectory = 'uploads /'.$_ POST ["имя файла"].'. mp4 '; if (! move_uploaded_file ($ _ FILES ["video-blob"] ["tmp_name"], $ uploadDirectory)) { echo («Проблема записи видео файла на диск!»); } еще { $ audioFile = 'uploads /'.$_ POST ["filename"].'. wav '; $ videoFile = 'uploads /'.$_ POST ["filename"].'. mp4 '; $ mergedFile = 'uploads /'.$_ POST ["имя файла"] .'- merged.mp4'; // ffmpeg зависит от yasm // libvpx зависит от libvorbis // libvorbis зависит от libogg // убедитесь, что вы используете новейшую версию ffmpeg! if (! strrpos ($ CurrOS, "Windows")) { $ cmd = '-i'. $ audioFile. ' -i '. $ videoFile.' -карта 0: 0 -карта 1: 0 '. $ mergedFile; } еще { $ cmd = '-i'. $ audioFile. ' -i '. $ videoFile.' -c: v mpeg4 -c: vorbis -b: v 64k -b: строгий экспериментальный 12k '. $ mergedFile; } exec ('ffmpeg'. $ cmd. '2> 1', $ out, $ ret); if ($ ret) { echo "Возникла проблема! \ n"; print_r ($ CMD '\ п'.); print_r ($ из); } еще { echo "Ffmpeg успешно объединил аудио- и видеофайлы в один контейнер WebM! \ n"; разъединить ($ аудиофайл); разъединить ($ видеофайла); } } } } } ?>
Задача ещё не решена.
Других решений пока нет …