는 FFmpeg 개발 노트 (B)는 FFmpeg 빌드 우분투의 개발 환경 및 컴파일러

텍스트가 원래 문서의 경우, 허가없이 복제 할 수 없다
원래 블로거의 블로그 주소 : https://blog.csdn.net/qq21497936
원래 블로거 탐색 블로그 : https://blog.csdn.net/qq21497936/article/details / 102 478 062
이 문서의 블로그 주소 : https://blog.csdn.net/qq21497936/article/details/104081729

디렉토리

머리말

는 FFmpeg 다운로드

컴파일는 FFmpeg

단계 : 다운로드 폴더에 배치 컴파일 할

단계 : 구성 부족 yasm (지원 조립 설명서 최적화와 같은 외모,하지 제어)

3 단계 : 컴파일러 메이크업

4 단계 : sudo는 메이크업 설치 설치

다섯 (보충) 단계 : 개발자가 설치 후 다시로드해야 들어

명령 줄 테스트

보기 버전

의 MPEG4 형식을 켜고 MP4로 패키지 YUV

Qt는 +는 FFmpeg 프로젝트 템플릿 및 건축 환경의 우분투

테스트 실행 출력

프로젝트 템플릿 v1.0.0 개발자

구덩이 속으로

구덩이에 : YUV하지 포맷 플레이어 재생 플레이어는 (: yuv420p, YUV444 등 w 세트, 시간, 심지어 형식) 전용 YUV 재생할 수 있습니다

구덩이 II에 : 프로젝트가 성공적으로 컴파일하지만 작업이 자동으로 실패는 FFmpeg을 설치 한 후


는 FFmpeg 개발 상자

" 는 FFmpeg 개발 노트 (A)는 FFmpeg 소개, 빌드 (와 Mingw 및 MSVC)에 윈도우 개발 환경 "

" 는 FFmpeg 개발 노트 (B)는 FFmpeg 빌드 개발 환경 및 컴파일러 우분투 "

"노트는 FFmpeg 개발의 (c)는 FFmpeg yuv420p 아비 / MP4 저장 인코딩"해제 될

"노트는 FFmpeg 개발의 (d)는 FFmpeg 디코딩 AVI / MP4 플레이어는"해제 될

보충에 계속 ...

 

    는 FFmpeg 개발 노트 (B)는 FFmpeg 빌드 우분투의 개발 환경 및 컴파일러

 

축복

나는 당신에게 모든 행복한 새해 새해를 기원합니다! ! !

무한 어서, 전국 각지에서 사람들에 이리와! ! !

 

머리말

       이 장에서는 본 섹션 일 수있는 중요한 크로스 컴파일러를 참조하여, 빌드 ubuntu18.04 컴파일러와 개발 환경 FFmpeg를 설명한다.

 

는 FFmpeg 다운로드

       현재 사용의 여러 버전을 사용하여이 장에서는 이전 장에서, 변경 4 3 실제 뭔가를 ffmpeg4을 컴파일, 나는이 특정로하지 않습니다.

       이 섹션을 3.2.14 버전을 사용합니다.

공식 다운로드 : http://ffmpeg.org/download.html#releases

       CSND 다운로드 : https://download.csdn.net/download/qq21497936/12104638

       3.2 시리즈의 최신 버전.

 

컴파일는 FFmpeg

단계 : 다운로드 폴더에 배치 컴파일 할

단계 : 구성 부족 yasm (지원 조립 설명서 최적화와 같은 외모,하지 제어)

       (참고 : prefix 매개 변수가 지정되지는 기본 시스템에 직접 설치)

./configure

       변경 매개 변수 구성을 계속 동적 라이브러리를 변경 :

./configure --disable-yasm --enable-shared

3 단계 : 컴파일러 메이크업

make

 

4 단계 : sudo는 메이크업 설치 설치

sudo make install

다섯 (보충) 단계 : 개발자가 설치 후 다시로드해야 들어

ldconfig

 

명령 줄 테스트

보기 버전

의 MPEG4 형식을 켜고 MP4로 패키지 YUV

ffmpeg -s 176x144 -pix_fmt yuv420p -i 176_144.yuv -vcodec mpeg4 176_144.mp4

 

Qt는 +는 FFmpeg 프로젝트 템플릿 및 건축 환경의 우분투

(시스템을 포함에서 헤더 파일이 기본적으로 포함) 라이브러리를 추가

는 FFmpeg 추가 기능 및 검색 경로를 구성은, 빌드 단계는 또한 "를 참조 할 수 는 FFmpeg 개발 노트 (A) : 빌드 (와 Mingw 및 MSVC)으로는 FFmpeg 소개, 윈도우 개발 환경 "에서 " 새로운는 FFmpeg 프로젝트 "의 주요 차이점은 다음, 구성 파일의 존재입니다 :

FFmpegServer.pri (I에는 추가 도입하지 않는 시스템 헤더 파일 및 라이브러리를 사용)

LIBS +=  \
        -lavcodec \
        -lavdevice \
        -lavfilter \
        -lavformat \
        -lavutil \
        -lpostproc \
        -lswscale

FFmpegMnager.h

#ifndef FFMPEGMANAGER_H
#define FFMPEGMANAGER_H

#include <QObject>

extern "C" {
    #include <libavcodec/avcodec.h>
    #include <libavformat/avformat.h>
    #include <libswscale/swscale.h>
    #include <libavdevice/avdevice.h>
    #include <libavformat/version.h>
    #include <libavutil/time.h>
    #include <libavutil/mathematics.h>
}

class FFmpegManager : public QObject
{
    Q_OBJECT
public:
    explicit FFmpegManager(QObject *parent = nullptr);

signals:

public:
    void testEnv();

};

#endif // FFMPEGMANAGER_H

FFmpegManager.cpp

#include "FFmpegManager.h"
#include <QDebug>

FFmpegManager::FFmpegManager(QObject *parent) : QObject(parent)
{

}

void FFmpegManager::testEnv()
{
    qDebug() << __FILE__ << __LINE__ << avcodec_configuration();
}

 

测试运行输出

 

 

工程模板v1.0.0

       工程模板v1.0.0:

  • 使用系统ffmpeg库;
  • 使用系统ffmpeg头文件;
  • 模板不带ffmpeg库(使用系统库文件);
  • 不单独带ffmpeg头文件(使用系统头文件);
  • 包含一个测试函数测试环境是否搭建成功。

入坑

入坑一:播放器播放不出yuv格式,专用播放器可以播放yuv(需要设置w、h,甚至是格式:yuv420p,yuv444等等)

原因:

yuv格式用播放器是播放不出来的,因为yuv是原始数据格式,需要设置播放的宽度和高度才能正确解析,大部分播放器不会这么智能。

解决方法:

不播放,直接使用ffmpeg命令进行转换

ffmpeg -s 176x144 -pix_fmt yuv420p -i 176_144.yuv -vcodec mpeg4 176_144.mp4

入坑二:安装ffmpeg后,工程编译成功,但是运行提示失败

原因:

       安装完ffmpeg,但是库的路径没有更新。

解决方法:

需要重启计算机或者使用命令ldconfig进行库路径更新,当然也可以设置

QT_LIBRARY_PATH=/usr/local/lib

直接引入。


原博主博客地址:https://blog.csdn.net/qq21497936
原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/104081729

发布了228 篇原创文章 · 获赞 238 · 访问量 40万+

추천

출처blog.csdn.net/qq21497936/article/details/104081729