原因:恰好下载的是lgpl,ffmpeg缺少依赖项,自身不带libx264编码类型 安装好了ffmpeg后,如果使用ffmpeg命令去把某个视频文件转成h264视频编码、mp3音频编码或者其他ffmpeg 最突出的是 libx264 和 libx265。 gpl-shared 与 gpl 相同,但带有 libav* 系列共享库而不是纯静态可执行文件。
librubberband libsrt libssh libspeex libtheora libvidstab libvmaf libvo-amrwbenc libvorbis libvpx libwebp libx264
搞定软件之后,先编译 libx264 ,在编译 FFmpeg 。 LibX264 编译 首先下载好 LibX264 源码。 路径,FFmpeg 的编译需要依赖 libx264 的库。 一番等待后,就编译出了动态库: CMake 依赖 FFmpeg 和 LibX264 最后就是在 Clion 中使用 CMake 去依赖 FFmpeg 和 LibX264 了。 在最后这一步反而卡主了: target_link_libraries(demo libx264 avcodec avformat) 要么提示找不到 libx264,要么找不到 avcodec-59,这个时候还需把
VS2012如何编译ffmpeg前面已经有文章讲过,本来主要讲述如何引用外部库libx264,librtmp, ffmpeg版本是3.0.2。 1. libx264配置、编译命令如下: . enable-shared --enable-gpl --enable-libx264 --enable-version3 --enable-encoder=libx264 --extra-cflags="-I/home/wgg/libx264/include" --extra-ldflags="-L/home/wgg/libx264
github.com/AnJoiner/FF… 一般的FFmpeg编译之后也会有6~7M左右,再加上编译一些第三方音视频处理库的话(如:fdk-aac、mp3lame、libx264等等),可能达到10 这也就是为什么我在APP上放弃使用FFmpeg而选择编译libx264的原因,尽管也能通过FFmpeg去使用libx264,而且还比单独使用libx264更方便。 libx264 libx264是支持H.264编码算法的一套程式,这套程式里提供了完整的对视频裸流处理成H.264压缩的算法。 二进制文件 使用 虽然我们已经成功编译出了libx264的二进制文件,但是在Android上还是不能直接使用。因为还没有写编码程序。 结尾 以上就是就是编译libx264并在Android上使用的全过程,如果有不正确地方请指出。
作者:Jerome Wu 原文链接:Build FFmpeg WebAssembly version (= ffmpeg.wasm): Part.4 ffmpeg.wasm v0.2 — Add Libx264 译者:Yodoxu 上一篇文章:编译WebAssembly版本的FFmpeg(ffmpeg.wasm):(3)ffmpeg.wasm v0.1 - 将avi转为mp4的编码 在这一部分中,你将学习: 将Libx264 添加到ffmpeg-core.js中 在浏览器中的ffmpeg.wasm demo 添加Libx264到ffmpeg-core.js中 下一步,我们想对avi视频进行转码,并在我们的网络浏览器中播放它。 所以我们需要先将libx264添加到我们的ffmpeg-core.js中。 下面是我们要添加的x264库的链接。
/configure --enable-libmp3lame --enable-libx264 --enable-gpl 由于libx264的code有GPL信息,所以,支持libx264时,需要 : MMX2 SSE2Fast SSSE3 SSE4.2 AVX [libx264 @ 0x7fc462030a00] profile High, level 3.0 [libx264 4213 [libx264 @ 0x7fc462030a00] consecutive B-frames: 11.0% 9.1% 9.6% 70.4% [libx264 [libx264 @ 0x7fc462030a00] ref P L0: 69.1% 15.4% 12.1% 3.3% 0.1% [libx264 @ 0x7fc462030a00 ] ref B L0: 87.2% 11.8% 1.1% [libx264 @ 0x7fc462030a00] ref B L1: 95.3% 4.7% [libx264
ffmpeg -f dshow -i video="Lenovo EasyCamera":audio="麦克风 (Realtek High Definition Audio)" \ -vcodec libx264 ffmpeg -f dshow \ -i video="Lenovo EasyCamera":audio="麦克风 (Realtek High Definition Audio)" \ -vcodec libx264 ffmpeg -f dshow \ -i video="Lenovo EasyCamera":audio="麦克风 (Realtek High Definition Audio)" \ -vcodec libx264 ffmpeg -f dshow -i video="Lenovo EasyCamera":audio="麦克风 (Realtek High Definition Audio)" \ -vcodec libx264 ffmpeg -f dshow \ -i video="Lenovo EasyCamera":audio="麦克风 (Realtek High Definition Audio)" \ -vcodec libx264
转码视频格式并设置音频采样率和输出视频尺寸: mpg-->mp4 C:\FFMPEG\ffmpeg_x86_4.2.2\bin\ffmpeg.exe -i 1.mpg -y -qscale 0 -vcodec libx264 转码视频格式并设置音频采样率和输出视频尺寸: wmv-->mp4 C:\FFMPEG\ffmpeg_x86_4.2.2\bin\ffmpeg.exe -i 2.wmv -y -qscale 0 -vcodec libx264 转码视频格式并设置音频采样率: wmv-->mp4 C:\FFMPEG\ffmpeg_x86_4.2.2\bin\ffmpeg.exe -i 2.wmv -y -qscale 0 -vcodec libx264 wmv-->mp4 C:\FFMPEG\ffmpeg_x86_4.2.2\bin\ffmpeg.exe -i Video_2020-10-11_2.wmv -y -qscale 0 -vcodec libx264 va2]overlay=format=yuv420[outv];[0:a][1:a][2:a] concat=n=3:v=0:a=1[outa]" -aspect 1920:1080 -vcodec libx264
:设定视频编解码器为 libx264 -r 30:一秒钟播 30 帧 -g 300:GOP,300 个帧里面才有一个 I 帧 -vf:视频过滤器 enable=lt(mod(t,3),2):播放时间对 Avg QP:21.71 size: 7884 [libx264 @ 0000020b24cce480] frame B:136 Avg QP:27.74 size: 1392 [libx264 23.6% inter: 7.1% 9.2% 0.5% [libx264 @ 0000020b24cce480] i16 v,h,dc,p: 28% 31% 11% 30% [libx264 @ 0000020b24cce480 ,v,p: 51% 20% 21% 8% [libx264 @ 0000020b24cce480] Weighted P-Frames: Y:0.0% UV:0.0% [libx264 @ 0000020b24cce480 ] ref P L0: 81.7% 11.4% 5.9% 1.0% [libx264 @ 0000020b24cce480] ref B L0: 95.0% 4.8% 0.2% [libx264
从一个简单转码示例 ffmpeg <global> <in-opts> -i <input> <out-opts> <output> ffmpeg -i sample.mov -c:v libx264 -c:a aac sample.mp4 解释: -i sample.mov 输入文件 -c:v libx264 -c表示哪个codec, v表示video,视频编码器 -c:a aac -c和上面一样, 哪个codec,a表示audio,音频编码器 sample.mp4 输出文件 2. ffmpeg常用场景 2.1. transcoding转码(如使用libx264,vp8) 2.2. transmuxing
视频编解码器 (Video Codec) 常用的编解码器 libx264: H.264(AVC) 的实现 libx265: H.265(HEVC) 的实现,Chromium 不支持硬解 libvpx-vp9 libaom-av1: AOMedia 出的开源免费 AV1 编码器,主要 Google 维护 libdav1d: VideoLAN、VLC、FFmpeg 联合开发,AOMedia 资助 使用 以 libx264 在 FFmpeg 命令行使用为例 ffmpeg -i input.mp4 -c:v libx264 -x264-params threads=1:br:1000:maxrate=1000:minrate =1000:bufsize=1000 out.mp4 -x264-params 编码器私有参数要通过类似这样的字段传入,每个编码器的不同 libx264 x264-params libx265 x265
rw-rw-r-- 1 www www 3.8M Oct 31 19:24 tinywan-input.mp4 通过FFmpeg压缩 ffmpeg -i "tinywan-input.mp4" -c:v libx264 Handler encoder : AVC Coding Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264 for help [libx264 @ 0x559762163060] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 AVX512 [libx264 @ 0x559762163060] profile High, level 4.0 [libx264 @ 0x559762163060] 264 - core 17T09:38:33.000000Z handler_name : Alias Data Handler encoder : Lavc57.107.100 libx264
-preset:v ultrafast -f flv test1.flv 服务器推流 ffmpeg -f dshow -i video="Integrated Camera" -vcodec libx264 保存文件 ffmpeg -f dshow -i video="Integrated Camera":audio="麦克风 (2- High Definition Audio 设备)" -vcodec libx264 -preset ultrafast -f flv test2.flv 服务器推流 ffmpeg -f gdigrab -i desktop -framerate 30 -vcodec libx264 -preset ultrafast -f flv test2.flv -t 录制时间,单位miao 推流 ffmpeg -f avfoundation -i "1" -vcodec libx264 推流 ffmpeg -f avfoundation -i "1:0" -vcodec libx264 -preset ultrafast -acodec libmp3lame -ar 44100 -ac
ffmpeg 命令分类所支持的参数 二、查询 " 复用器 " 类型 设置 flv 视频格式时 所支持的参数 三、查询 " 过滤器 " 类型设置 atempo 时所支持的参数 四、查询 " 编码器 " 类型设置 libx264 时所支持的参数 ---- 查询 " 编码器 " 类型设置 libx264 时所支持的参数 的 命令 : 如果在命令中使用了 libx264 编码器 , 可以设置的参数类型 ; ffmpeg -h encoder =libx264 执行过程 : 打印出设置 atempo 过滤器时可以设置的参数 ; 命令行输出 : D:\ffmpeg>ffmpeg -h encoder=libx264 ffmpeg version libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (codec h264) , 编码器的名称是 libx264 ; D:\ffmpeg>ffmpeg 都需要设置哪些参数 ; 使用 ffmpeg -h encoder=libx264 命令即可查询 libx264 编码器的详细参数设置 ;
折叠或打开 ffmpeg -i ~/Movies/objectC/bbs.chinaffmpeg.com-孙悟空.mp4 -i ~/Movies/guanlangaoshou.mp4 -vcodec libx264 [y/N] Y [libx264 @ 0x7fd4a281d200] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX [libx264 @ 0x7fd4a281d200] profile High, level 1.3 [libx264 @ 0x7fd4a281d200] 264 - encoder : Lavf57.28.102 Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021 25 fps, 12800 tbn, 25 tbc (default) Metadata: encoder : Lavc57.28.103 libx264
在FFmpeg 简介及iOS端交叉编译一文中介绍了FFmpeg 提供有自己的编解码库,封装了codec层,但是有一些codec是具备自己的License,FFmpeg不会默认集成,例如libx264、FDK_AAC 因此,整个交叉编译过程实际分为3个部分:交叉编译libx264;交叉编译libfdk_aac;交叉编译FFmpeg。每个编译流程大概分为下载源码、下载并修改编译脚本、交叉编译、合并静态库四个步骤。 交叉编译libx264 1、下载libx264源码 提供两种形式下载:从官网直接下载或者Git下载,本文都采用官网直接下载。 官网下载libx264源码 Git下载:git clone http://git.videolan.org/git/x264.git 2、下载编译脚本 将下载的脚本跟源码放在同一个文件夹下 脚本里面源码 脚本修改.png 同libx264、libfdk_acc一样,修改脚本ARCHS为ARCHS="arm64 armv7s x86_64" fdk-aac需要添加--enable-nonfree选项
ffmpeg.exe -fflags +genpts -hide_banner -i input.mp4 -vcodec libx264 -acodec copy -strict -2 -f hls - hls_time 8 -hls_list_size 0 output.m3u8 命令中-vcodec libx264 代表转码后的文件视频编码为 h264 编码,-acodec copy 代表转码后的文件音频编码直接采用 如果计算机中存在英伟达显卡,对于以上参数还可以继续优化,将 libx264 修改为 h264_nvenc,即可加快转码速度。 input.mp4 -vcodec h264_nvenc -acodec copy -strict -2 -f hls -hls_time 8 -hls_list_size 0 output.m3u8 libx264
双视频合并和视频并排显示 视频去除音频 1,双视频合并&视频并排显示 1.1,命令行如下所示: ffmpeg -i w11.mp4 -i w11.mp4 -filter_complex hstack -c:v libx264 -crf 0 output.mp4 -i表示输入文件libx264 -crf 0即无损压缩-filter_complex即使用复杂滤镜 2,视频去除音频 2.2,命令行如下所示: ffmpeg -v ffmpeg -video_size 1920x1080 -f avfoundation -framerate 30 -i "1:0" -vcodec libx264 -crf 20 -f flv
从一个简单转码示例 ffmpeg <global> <in-opts> -i <input> <out-opts> <output> ffmpeg -i sample.mov -c:v libx264 -c:a aac sample.mp4 解释: -i sample.mov 输入文件 -c:v libx264 -c表示哪个codec, v表示video,视频编码器 -c:a aac -c和上面一样, 哪个codec,a表示audio,音频编码器 sample.mp4 输出文件 2. ffmpeg常用场景 2.1. transcoding转码(如使用libx264,vp8) 2.2. transmuxing