linux下截屏/截屏上传到rtmp服务器
截屏上传rtmp
./ffmpeg -f fbdev -i /dev/fb0 -f flv rtmp://zjsos.net:8455/live/227
截屏
./ffmpeg -f fbdev -framerate 1 -i /dev/fb0 -frames:v 1 screenshot.jpeg
视频切割
ffmpeg -ss <offer time> -t <len time> -i <in file> -vcodec copy -an <out file>
推实时流
ffmpeg -r 25 -i rtsp://admin:zjsos12345@192.168.9.230:554/h264/ch1/main/av_stream -an -c:v h264 -f flv rtmp://172.16.3.21:1935/hls/test
ffmpeg -r 25 -i rtsp://admin:zjsos12345@172.16.3.110:554/h264/ch1/main/av_stream -vcodec copy -f flv rtmp://172.16.3.21:1935/hls/test
查看封装格式和编码
# 可用的bit流
ffmpeg –bsfs
# 可用的编解码器
ffmpeg –codecs
# 可用的解码器
ffmpeg –decoders
# 可用的编码器
ffmpeg –encoders
# 可用的过滤器
ffmpeg –filters
# 可用的视频格式
ffmpeg –formats
# 可用的声道布局
ffmpeg –layouts
# 可用的license
ffmpeg –L
# 可用的像素格式
ffmpeg –pix_fmts
# 可用的协议
ffmpeg -protocols
编译ffmpeg
没有发现yasm汇编编译器,yasm是x86架构下的一个汇编器,ffmpeg默认是使能的。没有该汇编器的话,后面编译ffmpeg时会报错误
交叉编译配置
参考配置
我的配置
#! /bin/sh
echo "build ..."
PWD=`pwd`
./configure --enable-cross-compile --prefix=/home/cp/out_arm \
--arch=arm --target-os=linux --enable-shared \
--cross-prefix=${PWD}/../../gcc/gcc-linaro-5.4.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- \
--enable-gpl \
--enable-libx264 \
--extra-cflags=-I/home/cp/out_arm/include \
--extra-ldflags=-L/home/cp/out_arm/lib \
#make && make install
编译libh264
配置
./configure --prefix=/home/cp/out_arm --host=arm-linux --cross-prefix=/home/cp/gcc_tools/gcc-linaro-5.4.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- --disbable-asm --enable-shared
make
make install