Лучший способ совместно использовать ASP.NET .ascx управляет через различные приложения веб-сайта?

Это проблема с кодеком

Я преобразовал этот файл mp4 в файл avi с ffmpeg. Тогда вышеуказанный код opencv может хорошо воспроизвести этот файл avi.

Поэтому я уверен, что это проблема кодека.

(тогда я преобразовал этот файл mp4 в другой файл mp4 с помощью ffmpeg, думая, возможно, ffmpeg поможет превратить этот оригинальный нечитаемый кодек .mp4 в читаемый кодек .mp4, но полученный файл .mp4 оказался сломанным. Этот факт может или не может относиться к этой проблеме, просто упомянув, если кому-то нужна эта информация. )

Ответ на него - перестроить FFmpeg, а затем перестроить Opencv

Несмотря на то, что, зная, что это проблема кодека, я пробовал много других способов, но до сих пор не смог ее решить. Наконец, я попытался восстановить ffmpeg и opencv, тогда проблема была решена!

Ниже приводится моя подробная процедура восстановления.

(1) Build ffmpeg

  1. Загрузить ffmpeg-2.7.1.tar.bz2 Веб-сайт FFmpeg: https://www.ffmpeg.org/download.html ffmpeg-2.7.1.tar.bz2 ссылка: http: //ffmpeg.org/releases/ffmpeg-2.7.1.tar.bz2
  2. tar -xvf ffmpeg-2.7.1.tar.bz2
  3. cd ffmpeg-2.7.1
  4. ./configure --enable-pic --extra-ldexeflags=-pie Из http://www.ffmpeg.org/platform.html#Advanced-linking-configuration Если вы скомпилировали библиотеки FFmpeg статически и хотите использовать их для создания собственной общей библиотеки, вам может понадобиться для поддержки поддержки PIC (с --enable-pic во время настройки FFmpeg). Если для вашей целевой платформы требуются независимые от позиции бинарные файлы, вы должны передать правильный флаг связывания (например, -pie) в --extra-ldexeflags. Если вы столкнулись с ошибкой: yasm/nasm not found or too old. Use --disable-yasm for a crippled build. Просто sudo apt-get install yasm Дальнейшие варианты построения: https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu , например. Добавление опции --enable-libmp3lame позволяет кодер png. (Перед ./configure вам необходимо sudo apt-get install libmp3lame-dev с версией ≥ 3.98.3)
  5. make -j5 (в папке ffmpeg)
  6. sudo make install

(2) Построить Opencv

  1. wget http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.4.9/opencv-2.4.9.zip
  2. unzip opencv-2.4.9.zip
  3. cd opencv-2.4.9
  4. mkdir build
  5. cd build
  6. cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_QT=OFF -D WITH_V4L=ON -D CMAKE_SHARED_LINKER_FLAGS=-Wl,-Bsymbolic .. Вы можете изменить эти параметры в зависимости от ваших потребностей. Ключом является только последний вариант -D CMAKE_SHARED_LINKER_FLAGS=-Wl,-Bsymbolic. Если вы опустите это, тогда make выпрыгнет из ошибок. Это также из http://www.ffmpeg.org/platform.html#Advanced-linking-configuration (та же ссылка на шаге 4 выше). Если вы скомпилировали библиотеки FFmpeg статически и хотите использовать для создания собственной общей библиотеки вам может понадобиться ... и добавить в свой проект следующий проект LDFLAGS: -Wl,-Bsymbolic
  7. make -j5
  8. sudo make install
  9. sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
  10. sudo ldconfig

Теперь код opencv должен хорошо воспроизводить файл mp4!

Методы, которые я пробовал, но не работали

  1. Попробуйте добавить WITH_UNICAP=ON WITH_V4L=ON, когда cmake opencv. Но не работает вообще.
  2. Попробуйте изменить кодек внутри кода opencv python. Но тщетно. cap = cv2.VideoCapture("MOV_0006.mp4") print cap.get(cv2.cv.CV_CAP_PROP_FOURCC) Я тестировал это в двух средах. В первом окружении opencv работает, а в другом opencv не воспроизводит видео. Но оба напечатали один и тот же кодек 828601953.0. Я попытался изменить свой кодек на cap.set(cv2.cv.CV_CAP_PROP_FOURCC, cv2.cv.CV_FOURCC(*'H264')), но не работал вообще.
  3. Попробуйте изменить библиотеки в opencv-2.4.8/3rdparty/lib/ на библиотеки в моей работоспособной среде. Но даже не удалось построить. I grep AVC: nal size и найти библиотеки содержат это сообщение об ошибке opencv-2.4.8/3rdparty/lib/libavcodec.a и т. Д. Вот почему я попытался их заменить. Но оказывается, что это плохая идея.
  4. sudo apt-get -y install libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff4-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip Попробуйте установить какую-то вещь и кое-какую эту вещь. Но это было совершенно бесполезно.

Проблемы, связанные с

Я искал в Интернете, и есть много подобных проблем, но у NONE из них было решение!

Ниже приведены проблемы я думаю, что и мои.

  • OpenCV / ffmpeg не воспроизводит мое видео mp4. - из opencv-users.nabble.com
  • VideoCapture не работает в OpenCV 2.4.2 - из answers.opencv .org В этом упоминается перестройка ffmpeg! Но аргументов мне было недостаточно.
  • Проблема чтения Mp4 - я установил OpenCV 2.4.1 и python 2.7 и сделал короткую программу, которая успешно читает файл avi . Однако не удается прочитать файл mp4 . - from answers.opencv.org
  • Не удается открыть видеофайлы .mp4 с использованием OpenCV 2.4.3, Python 2.7 в машине _Windows 7 - из Переполнение стека
  • OpenCV 2.4 VideoCapture не работает в Windows - из Переполнение стека ]
14
задан Bill the Lizard 12 September 2012 в 11:05
поделиться

9 ответов

Необходимо было бы создать составные элементы управления вместо средств управления.ASCX, если бы Вы хотели смочь использовать их в отдельных проектах.

5
ответ дан 1 December 2019 в 10:19
поделиться

Scott Guthrie дает некоторый большой совет здесь относительно того, как настроить проект Библиотеки Пользовательского элемента управления, затем используйте события перед сборкой для копирования пользовательских элементов управления в несколько проектов. Это работает действительно хорошо.

http://webproject.scottgu.com/CSharp/usercontrols/usercontrols.aspx

15
ответ дан 1 December 2019 в 10:19
поделиться

В дополнение к тому, что Tundey заявил, Ссылка NTFS , расширение оболочки полезно когда дело доходит до совместного использования большого блока содержания (например: папка с .ascx/.aspx) между в других отношениях независимыми проектами. В случае кода я думаю, делая другую рабочую копию с VCS, предпочтительно.

2
ответ дан 1 December 2019 в 10:19
поделиться

Альтернатива должна использовать Ваш инструмент управления исходным кодом, чтобы "совместно использовать" средства управления ASCX между Вашими веб-приложениями. Это позволит, Вы, чтобы внести изменения в средства управления в любом приложении и иметь управление исходным кодом удостоверяетесь, что изменения отражаются в наших веб-приложениях.

1
ответ дан 1 December 2019 в 10:19
поделиться

Мне удалось сделать это путем принесения в жертву части простоты создания средств управления во-первых.

можно создать проект Библиотеки программ управления, который генерирует библиотеку программ управления DLL для Вас. Недостаток состоит в том, что необходимо создать средства управления с кодом только. В моем последнем проекте это было прекрасно. В более сложных средствах управления это может быть проблемой.

Вот пример:

<DefaultProperty("Text"), ToolboxData("<{0}:BreadCrumb runat=server />")> _
Public Class BreadCrumb
    WebControl

    <Bindable(True)> _
    Property Text() As String
        '...'
    End Property

    Protected Overrides Sub RenderContents(output as HtmlTextWriter)
        output.write(Text)
    End Sub

    Private Sub Page_Load(...) Handles MyBase.Load
        ' Setup your breadcrumb and store the HTML output '
        ' in the Text property '
    End Sub
End Class

Что-либо Вы вставляете то текстовое свойство, будет представлен.

Затем любые средства управления, которые Вы вставляете здесь, могут функционировать точно так же, как любое другое управление Вы используете. Просто импортируйте его на свою Панель инструментов, сделайте Вашу регистрационную ссылку, затем шлепнитесь он на ASP-страницу.

1
ответ дан 1 December 2019 в 10:19
поделиться

Я использую StarTeam здесь, и он позволяет Вам "совместно использовать" объекты (файлы, запросы на изменение, требования и т.д.) через несколько папок. Не уверенный, если Подверсия (SVN) имеет ту функцию. Если это не делает, вот другой прием, который можно использовать: создайте соединение из основного местоположения средств управления к местоположению в других проектах. Соединение точно так же, как символьная ссылка Unix. Можно загрузить инструмент для создания соединений в Windows от здесь

0
ответ дан 1 December 2019 в 10:19
поделиться

Самая большая проблема, которую я заметил со средствами управления в ASP.NET, состоит в том, что Вы не можете легко получить поддержку разработчика и создания управления и использование управления в сайте, после того как Вы создали его. Единственным путем я смог сделать, который является, создают управление .ascx без кода - позади (т.е.: весь серверный код находится в теге script в .ascx файле с runat = атрибут "сервера").

, Но даже затем, все еще необходимо скопировать .ascx файл вокруг, поэтому если когда-нибудь необходимо вносить изменение, которое означает обновлять файл в каждом местоположении, где Вы использовали его. Так да удостоверьтесь, что это находится в управлении исходным кодом.

0
ответ дан 1 December 2019 в 10:19
поделиться

Я недавно сделал веб-приложение, которое просто сослалось на файлы (приблизительно 90 всего) из одного веб-приложения (aspx, ведущее устройство и ascx) без слишком большого количества проблемы. Это сказало, что я использовал в большой степени измененную версию , шаблон MVP , много интерфейсов и конвенций подавить сложность, тот же средний уровень и один сайт был подмножеством другого.

Большие проблемы:

  1. страницы Master (и в свою очередь разработчики и форматирование представления HTML) don’t работают над файлом, на который ссылаются, таким образом, Вы теряете большую функциональность. Шаг перед сборкой и много svn:ignore записей были моим взломом вокруг этого. Это была также боль, чтобы заставить CruiseControl.NET получать задачу перед сборкой выполниться в правильных папках.
  2. Общие страницы/средства управления должны чрезвычайно знать о том, чего они касаются и ссылка, чтобы не вводить дополнительные зависимости.
  3. Оба сайта заблокированы вместе для развертывания.
  4. я теперь должен молиться, чтобы специалист по обслуживанию считал мою тюрьму мало документа о путанице, которую я сделал. It’s до сих пор, за пределами какой I’ve, замеченный в проектах ASP.NET.

я находился под крупной нехваткой времени, чтобы заставить это работать, это делает и теперь оба приложения работают. Я, которого wouldn’t рекомендуют этому, но если заинтересованные you’re запускаются в:

Добавляют Существующий Объект , выбирают некоторые файлы, нажимают эти , Добавляют button’s стрелка и говорят , Добавляют как Ссылка .

0
ответ дан 1 December 2019 в 10:19
поделиться
2
ответ дан 1 December 2019 в 10:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: