ShiftMediaProject / FFVS-Project-Generator

A program that can scan existing FFmpeg/LibAV source files and dynamically generate a Visual Studio project file.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Some functions are not needed,how can i disable the ffmpeg Component options .

yunhai2009 opened this issue · comments

@Sibras , Some functions are not needed ,so i want to disable some muxer\decoder\demuxer\prser through the ffmpeg Component options,but i cannt use those configure options.can you tell me how to use in this generator,thank you.

Why can you not use those configure options? FFVS supports the same configure options as standard ffmpeg builds.

@Sibras thank you. but "libavcodec\libavformat\libavdevice" those projects cannot be generated if i use configure options as following,its why?

project_generate.exe --disable-bsf=extract_extradata --disable-encoders --disable-decoders --enable-decoder=aac --enable-decoder=aac_at --enable-decoder=aac_fixed --enable-decoder=aac_latm --enable-decoder=h264 --enable-decoder=h264_crystalhd --enable-decoder=h264_cuvid --enable-decoder=h264_mediacodec --enable-decoder=h264_mmal --enable-decoder=h264_qsv --enable-decoder=h264_vda --enable-decoder=h264_vdpau --disable-muxers --disable-demuxers --enable-demuxer=aac --enable-demuxer=asf --enable-demuxer=rtp --enable-demuxer=rtsp --enable-demuxer=h264 --enable-demuxer=hls --enable-demuxer=mpegts --enable-demuxer=mpegts --disable-parsers --enable-parser=aac --enable-parser=h264 --enable-parser=mpegaudio --enable-parser=aac_latm --enable-parser=mpegvideo --enable-parser=mpeg4video --disable-bsfs --toolchain=msvc --enable-gpl --enable-version3 --disable-bzlib --disable-iconv --disable-zlib --disable-lzma --disable-sdl

See my previous comment on the other issue you commented on:
"avcodec requires the null_bsf to be enabled which you have explicitly disabled in your command line so avcodec cannot be built.

You need to add --enable-bsf=null to the end of your command line to get avcodec to build. You should also make sure you are using the latest 1.5.7 build."

@Sibras i add --enable-bsf=null to the end of mycommand line and have avcodec ,but i have some errors:
1>------ 已启动生成: 项目: libavcodec, 配置: ReleaseDLL Win32 ------
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets(1198,5): warning MSB8012: TargetPath(D:\VS-Project\FFmpegVS\FFmpeg\SMP......\msvc\avcodec.dll) 与 Linker 的 OutputFile 属性值(D:\VS-Project\msvc\bin\x86\avcodec.dll)不匹配。这可能导致项目生成不正确。若要更正此问题,请确保 $(OutDir)、$(TargetName) 和 $(TargetExt) 属性值与 %(Link.OutputFile) 中指定的值匹配。
1>dce_defs.obj : error LNK2005: _ff_h263dsp_init 已经在 h263dsp.obj 中定义
1>dce_defs.obj : error LNK2005: _ff_mpeg1_clean_buffers 已经在 mpeg12.obj 中定义
1>dce_defs.obj : error LNK2005: _ff_mpeg4_clean_buffers 已经在 mpeg4video.obj 中定义
1>dce_defs.obj : error LNK2005: _ff_mpeg4_decode_partitions 已经在 mpeg4videodec.obj 中定义
1>dce_defs.obj : error LNK2005: _ff_mpeg4_decode_video_packet_header 已经在 mpeg4videodec.obj 中定义
1>dce_defs.obj : error LNK2005: _ff_mpeg4_frame_end 已经在 mpeg4videodec.obj 中定义
1>dce_defs.obj : error LNK2005: _ff_mpeg4_set_direct_mv 已经在 mpeg4video.obj 中定义
1>dce_defs.obj : error LNK2005: _ff_mpeg4_workaround_bugs 已经在 mpeg4videodec.obj 中定义
1>dce_defs.obj : error LNK2005: _ff_mpeg4_decoder 已经在 mpeg4videodec.obj 中定义
1>dce_defs.obj : error LNK2005: _ff_msmpeg4v2_encoder 已经在 mpegvideo_enc.obj 中定义
1>dce_defs.obj : error LNK2005: _ff_msmpeg4v3_encoder 已经在 mpegvideo_enc.obj 中定义
1>dce_defs.obj : error LNK2005: _ff_wmv1_encoder 已经在 mpegvideo_enc.obj 中定义
1>dce_defs.obj : error LNK2005: _ff_h263_decoder 已经在 h263dec.obj 中定义
1>dce_defs.obj : error LNK2005: _ff_h263_encoder 已经在 mpegvideo_enc.obj 中定义
1>dce_defs.obj : error LNK2005: _ff_h263p_decoder 已经在 h263dec.obj 中定义
1>dce_defs.obj : error LNK2005: _ff_h263p_encoder 已经在 mpegvideo_enc.obj 中定义
1> 正在创建库 D:\VS-Project\FFmpegVS\FFmpeg\SMP......\msvc\lib\x86\avcodec.lib 和对象 D:\VS-Project\FFmpegVS\FFmpeg\SMP......\msvc\lib\x86\avcodec.exp
1>hevc_ps.obj : error LNK2001: 无法解析的外部符号 _ff_hevc_diag_scan4x4_x
1>hevc_ps.obj : error LNK2001: 无法解析的外部符号 _ff_hevc_diag_scan4x4_y
1>hevc_ps.obj : error LNK2001: 无法解析的外部符号 _ff_hevc_diag_scan8x8_x
1>hevc_ps.obj : error LNK2001: 无法解析的外部符号 _ff_hevc_diag_scan8x8_y
1>intrax8.obj : error LNK2001: 无法解析的外部符号 _ff_wmv1_scantable
1>libavcodec_ac3dsp.obj : error LNK2001: 无法解析的外部符号 _ff_ac3_band_start_tab
1>libavcodec_ac3dsp.obj : error LNK2001: 无法解析的外部符号 _ff_ac3_bin_to_band_tab
1>D:\VS-Project\FFmpegVS\FFmpeg\SMP......\msvc\bin\x86\avcodec.dll : fatal error LNK1120: 7 个无法解析的外部命令
1>已完成生成项目“libavcodec.vcxproj”的操作 - 失败。
2>------ 已启动生成: 项目: libavformat, 配置: ReleaseDLL Win32 ------
2>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets(1198,5): warning MSB8012: TargetPath(D:\VS-Project\FFmpegVS\FFmpeg\SMP......\msvc\avformat.dll) 与 Linker 的 OutputFile 属性值(D:\VS-Project\msvc\bin\x86\avformat.dll)不匹配。这可能导致项目生成不正确。若要更正此问题,请确保 $(OutDir)、$(TargetName) 和 $(TargetExt) 属性值与 %(Link.OutputFile) 中指定的值匹配。
2>dce_defs.obj : error LNK2005: _ff_mpegtsraw_demuxer 已经在 mpegts.obj 中定义
2> 正在创建库 D:\VS-Project\FFmpegVS\FFmpeg\SMP......\msvc\lib\x86\avformat.lib 和对象 D:\VS-Project\FFmpegVS\FFmpeg\SMP......\msvc\lib\x86\avformat.exp
2>D:\VS-Project\FFmpegVS\FFmpeg\SMP......\msvc\bin\x86\avformat.dll : fatal error LNK1169: 找到一个或多个多重定义的符号
2>已完成生成项目“libavformat.vcxproj”的操作 - 失败。
3>------ 已启动生成: 项目: libavfilter, 配置: ReleaseDLL Win32 ------
3>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets(1198,5): warning MSB8012: TargetPath(D:\VS-Project\FFmpegVS\FFmpeg\SMP......\msvc\avfilter.dll) 与 Linker 的 OutputFile 属性值(D:\VS-Project\msvc\bin\x86\avfilter.dll)不匹配。这可能导致项目生成不正确。若要更正此问题,请确保 $(OutDir)、$(TargetName) 和 $(TargetExt) 属性值与 %(Link.OutputFile) 中指定的值匹配。
3> 正在创建库 D:\VS-Project\FFmpegVS\FFmpeg\SMP......\msvc\lib\x86\avfilter.lib 和对象 D:\VS-Project\FFmpegVS\FFmpeg\SMP......\msvc\lib\x86\avfilter.exp
3>libavfilter.vcxproj -> D:\VS-Project\FFmpegVS\FFmpeg\SMP......\msvc\avfilter.dll
3>libavfilter.vcxproj -> D:\VS-Project\FFmpegVS\FFmpeg\SMP......\msvc\lib\x86\avfilter.pdb (Full PDB)
3>子目录或文件 D:\VS-Project\FFmpegVS\FFmpeg\SMP......\msvc\include 已经存在。
3>已复制 1 个文件。
3>已复制 1 个文件。
3>已复制 1 个文件。
3>已复制 1 个文件。
3>已复制 1 个文件。
3>子目录或文件 D:\VS-Project\FFmpegVS\FFmpeg\SMP......\msvc\licenses 已经存在。
3>已复制 1 个文件。
3>已完成生成项目“libavfilter.vcxproj”的操作。
4>------ 已启动生成: 项目: libavdevice, 配置: ReleaseDLL Win32 ------
4>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets(1198,5): warning MSB8012: TargetPath(D:\VS-Project\FFmpegVS\FFmpeg\SMP......\msvc\avdevice.dll) 与 Linker 的 OutputFile 属性值(D:\VS-Project\msvc\bin\x86\avdevice.dll)不匹配。这可能导致项目生成不正确。若要更正此问题,请确保 $(OutDir)、$(TargetName) 和 $(TargetExt) 属性值与 %(Link.OutputFile) 中指定的值匹配。
4> 正在创建库 D:\VS-Project\FFmpegVS\FFmpeg\SMP......\msvc\lib\x86\avdevice.lib 和对象 D:\VS-Project\FFmpegVS\FFmpeg\SMP......\msvc\lib\x86\avdevice.exp
4>libavdevice.vcxproj -> D:\VS-Project\FFmpegVS\FFmpeg\SMP......\msvc\avdevice.dll
4>libavdevice.vcxproj -> D:\VS-Project\FFmpegVS\FFmpeg\SMP......\msvc\lib\x86\avdevice.pdb (Full PDB)
4>子目录或文件 D:\VS-Project\FFmpegVS\FFmpeg\SMP......\msvc\include 已经存在。
4>已复制 1 个文件。
4>已复制 1 个文件。
4>子目录或文件 D:\VS-Project\FFmpegVS\FFmpeg\SMP......\msvc\licenses 已经存在。
4>已复制 1 个文件。
4>已完成生成项目“libavdevice.vcxproj”的操作。
5>------ 已跳过生成: 项目: ffmpeg, 配置: ReleaseDLL Win32 ------
5>没有为此解决方案配置选中要生成的项目
6>------ 已跳过生成: 项目: ffprobe, 配置: ReleaseDLL Win32 ------
6>没有为此解决方案配置选中要生成的项目
========== 生成: 成功 2 个,失败 2 个,最新 4 个,跳过 2 个 ==========

I was able to reproduce your issues with the above configure line. It appears the specific configuration you are using actually breaks the original upstream ffmpeg configuration so in order to fix it ill have to submit a patch to the ffmpeg upstream repo.

There was also an issue in FFVS that i have fixed and updated but youll have to wait until i can update the original upstream ffmpeg repo before your configure option will work.

OK the required fixes have been upstreamed to ffmpeg and I have tested the above config using FFVS 1.5.8 and everything works as expected.

@Sibras That`s OK ,thank you very much.