2014-10-21 2 views
3

Я хочу подготовить WEB-страницу, содержащую фильмы из камер охранной камеры. Каждый регистратор передачи видео файлов в формате DAV, так что каждый фильм преобразуется в формат MP4 с помощью сценария, используя такой синтаксис:Преобразование DAV в MP4 и OGG

ffmpeg -y -i movie.dav -vcodec libx264 -crf 24 movie.mp4 

Так я включил в HTMLv5 код такой записи:

<video width="320" height="240"> 
    <source src="movie.mp4" type="video/mp4"> 
</video> 

Он правильно работает с Chrome, но не с Firefox. Для правильной работы в FF необходимо добавить ссылку на файл OGG. Так правильный синтаксис HTMLv5 для обоих браузеров должен выглядеть следующим образом:

<video width="320" height="240"> 
    <source src="movie.mp4" type="video/mp4"> 
    <source src="movie.ogg" type="video/ogg"> 
</video> 

Может кто-нибудь помочь мне пройти правильный синтаксис FFmpeg для создания файла OGG?

Выход из консоли после использования -movflags + Faststart опционов

[[email protected] MMM]$ ../ffmpeg-2.4.2-64bit-static/ffmpeg -movflags +faststart -y -i 04.24.23-04.24.38\[M\]\[@0\]\[0\].dav -vcodec libx264 -crf 24 10.mp4 
ffmpeg version 2.4.2- http://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2014 the FFmpeg developers 
    built on Oct 9 2014 07:24:56 with gcc 4.8 (Debian 4.8.3-11) 
    configuration: --enable-gpl --enable-version3 --disable-shared --disable-debug --enable-runtime-cpudetect --enable-libmp3lame --enable-libx264 --enable-libx265 --enable- libwebp --enable-libspeex --enable-libvorbis --enable-libvpx --enable-libfreetype --enable-fontconfig --enable-libxvid --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-gray --enable-libopenjpeg --enable-libopus --disable-ffserver --enable-libass --enable-gnutls --cc=gcc-4.8 
    libavutil  54. 7.100/54. 7.100 
    libavcodec  56. 1.100/56. 1.100 
    libavformat 56. 4.101/56. 4.101 
    libavdevice 56. 0.100/56. 0.100 
    libavfilter  5. 1.100/5. 1.100 
    libswscale  3. 0.100/3. 0.100 
    libswresample 1. 1.100/1. 1.100 
    libpostproc 53. 0.100/53. 0.100 
Option movflags not found. 
+0

Не забудьте добавить '-movflags + faststart' в качестве опции вывода в команду' ffmpeg' для вывода MP4. Он переместит атом MOOV в начало файла; в противном случае полный файл должен быть загружен клиентом до того, как воспроизведение может произойти. – LordNeckbeard

+0

Да! Довольно хорошая идея! – mackowiakp

+0

Но ffmpeg сообщает об ошибке - опция movflags не найдена. Я использую ffmpeg ver 2.4.2 linux 64 бит, взятый из http://johnvansickle.com/ffmpeg/ как статический двоичный файл – mackowiakp

ответ

0

FFmpeg -i movie.dav -vn -acodec libvorbis audiofile.ogg

Я не проверял это.

+0

Это приведет к созданию только аудиофайла, или если вход только видеофайла ffmpeg выведет ошибку 'не содержит потока ', создайте пустой файл. – LordNeckbeard

+0

Да. Но проблема в том, что некоторые камеры безопасности имеют встроенный микрофон, а некоторые нет. Но для правильного воспроизведения такого преобразованного файла в Firefox необходим файл OGG. Но в Chrome - нет. Так что неважно, является ли аудио-контент включенным в поток ввода или нет, файл OGG должен присутствовать в коде HTMLv5. – mackowiakp

+0

Итак, что делать в случае выше? – mackowiakp

0

У меня есть ответ, просто попробуйте.

Установите этот NuGet NReco.VideoConverter

Пакет Управление консоли

Install-Package NReco.VideoConverter -Version 1.1.2 

и этот метод для преобразования

var ffMpeg = new NReco.VideoConverter.FFMpegConverter(); 
ffMpeg.ConvertMedia(inputfile.dav, "output.mp4", Format.mp4); 
0

Я просто должен был решить ту же проблему, и я действительно нашел решение даже если не использовать ffmpeg.

Я пробовал это в Windows, но я думаю, что это не будет иметь никакого значения, если это будет сделано в Linux.

Для преобразования файлов .dav я использовал VLC как это:

1) Перейдите в меню Сервис -> Настройки в панели инструментов VLC.

2) Затем выберите «Все» в поле «Показать настройки» в нижнем левом углу.

3) Перейдите в раздел «Демультиметры» и переключитесь с «Автоматический» на «Видеодрайвер H264» и «Сохранить». 4) Затем снова с панели инструментов VLC перейдите к Media -> Convert/Save ...

5) Выберите Добавить и выберите файл, который вы хотите преобразовать.

6) Нажмите стрелку на кнопку "Convert/Сохранить" и выберите Преобразовать

7) Затем выбрал "Destination File" в разделе ниже, нажав на Обзор

8) Наконец нажать «Пуск "и дождитесь, пока индикатор выполнения VLC будет заполнен.

На этом этапе файл должен быть успешно преобразован.

В любом случае после шага 3 вы уже должны иметь возможность играть в .dav-файл, чтобы проверить, не поврежден ли он, попробуйте сначала воспроизвести его.

Надежда ответ будет полезным для кого-то и я желаю вам всего хорошего дня :)

EDIT: этот ответ, конечно, не в полной мере связана с вопросом, потому что я не знаю, если эта информация полезна в любом случае для веб-страниц: \ so, извините за то, что не остался точно на тему

Смежные вопросы