标签 ffmpeg 下的文章

“”

Ubuntu16.04下安装FFmpeg
不要手动下载安装。但某些功能可能没有。基本够用了,如果需要某些特定功能,还是需要下载编译安装。

第一步:添加源。
sudo add-apt-repository ppa:djcj/hybrid
第二步:更新源。
sudo apt-get update
第三步:下载安装。
sudo apt-get install ffmpeg
如上,就安装好了~
Referenced from:https://blog.csdn.net/lwgkzl/article/details/77836207

静态库没有fPIC编译, 只要在configure时加上--enable-shared即可, 即: ./configure --enable-shared

编译opencv4.5.3的时候出现错误

/usr/bin/ld: /usr/local/lib/libavcodec.a(vc1dsp_mmx.o): relocation R_X86_64_PC32 against symbol `ff_pw_9' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: 最后的链结失败: bad value
collect2: error: ld returned 1 exit status
make[2]: * [modules/world/CMakeFiles/opencv_world.dir/build.make:8801:lib/libopencv_world.so.4.5.3] 错误 1
make[1]: * [CMakeFiles/Makefile2:2093:modules/world/CMakeFiles/opencv_world.dir/all] 错误 2
make: * [Makefile:163:all] 错误 2

将ffmpeg换成动态库编译就可以了。

下载x264并编译

git clone git://git.videolan.org/x264.git
./configure --enable-shared --enable-static --prefix=/usr
make -j8
make install
解释一下,指定/usr的话,安装好,不用配置路径。
j8的目的是编译起来,用8路进行make,节省编译时间

2 把libx264编译到ffmpeg

./configure --enable-gpl --enable-libx264 --prefix=/root/extest/webMP4/ffmpeg
make -j8
make instal

就可以了
Referenced from:https://blog.csdn.net/dong_beijing/article/details/78366732

ffmpeg -i test.mp4 -r 30 image-%3d.jpg
ffmpeg -i test.mp4 -r 30 -t 4 image-%3d.jpg
ffmpeg -i test.mp4 -r 30 -ss 00:00:20 image-%3d.jpg
ffmpeg -i test.mp4 -r 30 -ss 00:00:20 -vframes 10 image-%3d.jpg
ffmpeg -i test.mp4 -r 30 image-%3d.jpg

test.mp4视频文件
-r 30 每秒提取30帧,一般是24帧 image-%3d 文件命名格式是image-001.jpg

ffmpeg -i test.mp4 -r 30 -t 4 image-%3d.jpg
-t,表示取t秒时间的帧

ffmpeg -i test.mp4 -r 30 -ss 00:00:20 image-%3d.jpg
-ss,表示截取帧初始时间

ffmpeg -i test.mp4 -r 30 -ss 00:00:20 -vframes 10 image-%3d.jpg
-vframes,表示截取多少帧

Referenced from:https://blog.csdn.net/Gary__123456/article/details/89154095

The encoders only accept input as VAAPI surfaces. If the input is in normal memory, it will need to be uploaded before giving the frames to the encoder - in the ffmpeg utility, the hwupload filter can be used for this. It will upload to a surface with the same layout as the software frame, so it may be necessary to add a format filter immediately before to get the input into the right format (hardware generally wants the nv12 layout, but most software functions use the yuv420p layout). The hwupload filter also requires a device to upload to, which needs to be defined before the filter graph is created.

So, to use the default decoder for some input, then upload frames to VAAPI and encode with H.264 and default settings:

机翻

编码器只接受作为 VAAPI 表面的输入。如果输入在正常内存中,则需要在将帧提供给编码器之前上传它 - 在 ffmpeg 实用程序中,可以使用 hwupload 过滤器。它会上传到与软件框架布局相同的表面,因此可能需要在紧接之前添加格式过滤器才能将输入转换为正确的格式(硬件一般要nv12布局,但大多数软件功能使用yuv420p布局)。 hwupload 过滤器还需要一个设备来上传,这需要在创建过滤器图之前定义。

因此,要对某些输入使用默认解码器,然后将帧上传到 VAAPI 并使用 H.264 和默认设置进行编码