ffmpeg 安装
./configure --prefix="/var/ffmpeg-sources/ffmpeg_build" --bindir="/var/ffmpeg-sources/bin"
make && make install
PKG_CONFIG_PATH="/var/ffmpeg_build/lib/pkgconfig" ./configure --prefix="/var/ffmpeg_build" --bindir="/var/bin" --enable-static
curl -O -L https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/nasm-2.13.03.tar.gz
tar xzvf nasm-2.13.03.tar.gz
cd nasm-2.13.03
./configure && make && make install
./configure --prefix="/var/ffmpeg_build" --bindir="/var/ffmpeg_build/bin" --disable-shared --enable-nasm
PATH="/var/ffmpeg_build/bin:$PATH" PKG_CONFIG_PATH="/var/ffmpeg_build/lib/pkgconfig" ./configure \
--prefix="/var/ffmpeg_build" \
--pkg-config-flags="--static" \
--extra-cflags="-I/var/ffmpeg_build/include" \
--extra-ldflags="-L/var/ffmpeg_build/lib" \
--extra-libs=-lpthread \
--extra-libs=-lm \
--bindir="/var/ffmpeg_build/bin" \
--enable-gpl \
--enable-libfdk_aac \
--enable-libfreetype \
--enable-libmp3lame \
--enable-libx264 \
--enable-nonfree
1011 mdir /var/ffmpeg-sources
1012 mkdir /var/ffmpeg-sources
1013 cd /var/ffmpeg-sources/
1014 yum install autoconf automake bzip2 bzip2-devel cmake freetype-devel gcc gcc-c ++ git libtool make mercurial pkgconfig zlib-devel
1015 curl -O -L https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.bz2
1016 tar xjvf nasm-2.14.02.tar.bz2
1017 cd nasm-2.14.02
1018 ./autogen.sh
1019 ls ~
1020 ./configure --prefix="/var/ffmpeg_build" --bindir="/var/ffmpeg_build/bin"
1021 make
1022 make install
1023 cd ../
1024 curl -O -L https://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
1025 tar xzvf yasm-1.3.0.tar.gz && cd yasm-1.3.0
1027 ./configure --prefix="/var/ffmpeg_build" --bindir="/var/ffmpeg_build/bin"
1028 make && make install
1030 cd ..
1031 git clone --depth 1 https://code.videolan.org/videolan/x264.git
1032 cd x264
1033 PKG_CONFIG_PATH="/var/ffmpeg_build/lib/pkgconfig" ./configure --prefix="/var/ffmpeg_build" --bindir="/var/bin" --enable-static
1034 yum remove nasm && hash -d nasm
1035 PKG_CONFIG_PATH="/var/ffmpeg_build/lib/pkgconfig" ./configure --prefix="/var/ffmpeg_build" --bindir="/var/bin" --enable-static
1036 cd ..
1037 curl -O -L https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/nasm-2.13.03.tar.gz
1038 tar xzvf nasm-2.13.03.tar.gz
1039 cd nasm-2.13.03
1040 ./configure && make && make install
1041 cd x264
1042 cd ../
1043 cd x264
1044 PKG_CONFIG_PATH="/var/ffmpeg_build/lib/pkgconfig" ./configure --prefix="/var/ffmpeg_build" --bindir="/var/bin" --enable-static
1045 nasm -v
1046 /usr/local/bin/nasm -v
1047 /usr/local/bin/nasm -v
1048 echo $PATH
1049 export PATH=/usr/local/bin/:$PATH
1050 echo $PATH
1051 PKG_CONFIG_PATH="/var/ffmpeg_build/lib/pkgconfig" ./configure --prefix="/var/ffmpeg_build" --bindir="/var/bin" --enable-static
1052 make && make install
1053 cd ..
1054 git clone --depth 1 https://github.com/mstorsjo/fdk-aac
1055 cd fdk-aac
1056 autoreconf -fiv
1057 ./configure --prefix="/var/ffmpeg_build" --disable-shared
1058 make && make install
1059 cd ..
1060 curl -O -L https://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz
1061
1062 cd lame-3.100
1063 ./configure --prefix="/var/ffmpeg_build" --bindir="/var/ffmpeg_build/bin" --disable-shared --enable-nasm
1064 make && make install
1065 cd ..
1066 curl -O -L https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
1067 tar xjvf ffmpeg-snapshot.tar.bz2
1068 cd ffmpeg
1069 PATH="/var/ffmpeg_build/bin:$PATH" PKG_CONFIG_PATH="/var/ffmpeg_build/lib/pkgconfig" ./configure --prefix="/var/ffmpeg_build" --pkg-config-flags="--static" --extra-cflags="-I/var/ffmpeg_build/include" --extra-ldflags="-L/var/ffmpeg_build/lib" --extra-libs=-lpthread --extra-libs=-lm --bindir="/var/ffmpeg_build/bin" --enable-gpl --enable-libfdk_aac --enable-libfreetype --enable-libmp3lame --enable-libx264 --enable-libx265 --enable-nonfree
1070 history
1071 PATH="/var/ffmpeg_build/bin:$PATH" PKG_CONFIG_PATH="/var/ffmpeg_build/lib/pkgconfig" ./configure --prefix="/var/ffmpeg_build" --pkg-config-flags="--static" --extra-cflags="-I/var/ffmpeg_build/include" --extra-ldflags="-L/var/ffmpeg_build/lib" --extra-libs=-lpthread --extra-libs=-lm --bindir="/var/ffmpeg_build/bin" --enable-gpl --enable-libfdk_aac --enable-libfreetype --enable-libmp3lame --enable-libx264 --enable-nonfree
1072 make && make install
命令列表
// 切割
// 裁剪
ffmpeg -i 4.ts -vf crop=308:544 -y 4_c.ts
// 缩放
ffmpeg -i 3.mp4 -s 544:960 -y 3_s.mp4
// 或
ffmpeg -i 2.mp4 -vf scale=320:200 -y 2_ss.mp4
ffmpeg -i 4_c.ts -s 544:960 -y 4_s.ts
// 合并
ffmpeg -i "concat:2222_0_51723_cut.ts|4_s.ts" -acodec copy -vcodec copy -absf aac_adtstoasc out.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '1.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42isom
creation_time : 2020-03-01T03:10:08.000000Z
Duration: 00:01:41.71, start: 0.000000, bitrate: 1200 kb/s
Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
creation_time : 2020-03-01T03:10:08.000000Z
Stream #0:1(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 544x960, 1066 kb/s, 28.92 fps, 28.92 tbr, 90k
tbn, 59.21 tbc (default)
Metadata:
creation_time : 2020-03-01T03:10:08.000000Z
encoder : JVT/AVC Coding
-acodec aac -ar 48000 -ab 128k
-vcodec libx264 -s 544x960 -r 28.92 -pix_fmt yuv420p -preset slow -crf 18 -profile:v High
-vcodec libx264 -s 544x960 -r 28.92 -pix_fmt yuv420p -preset slow -crf 18 -profile:v High -acodec aac -ar 48000 -ab 128k
ffmpeg -i 2.mp4 -vcodec h264 -s 544x960 -r 28.92 -pix_fmt yuv420p -profile:v High -acodec aac -ar 48000 -ab 128k -y 2_out.mp4
/var/ffmpeg_build/bin/ffmpeg -i 2.mp4 -vcodec h264 -s 544x960 -r 28.92 -pix_fmt yuv420p -profile:v High -acodec aac -ar 48000 -ab 128k -y 2_out.mp4
/var/ffmpeg_build/bin/ffmpeg -i console/runtime/video_splicing3/2137860_1_44722_cut.mp4 -vf scale=544:-1,pad=544:960:0:326:black console/runtime/video_splicing3/2137860_1_44722_cut_scale3.mp4
// 填充黑边
/var/ffmpeg_build/bin/ffmpeg -i console/runtime/video_splicing3/2137860_1_44722_cut.mp4 -vf scale=544:-1,pad=544:960:0:326:black console/runtime/video_splicing3/2137860_1_44722_cut_scale3.mp4
// 视频模糊
/var/ffmpeg_build/bin/ffmpeg -i console/runtime/video_splicing3/2137860_1_44722_cut.mp4 -vf boxblur=1:10:4:10 console/runtime/video_splicing3/2137860_1_44722_cut_scale4.mp4
/var/ffmpeg_build/bin/ffmpeg -i console/runtime/video_splicing/2137860_2_64519_cut.mp4 -vf split[a][b];[a]crop=ih(544/960):ih[e];[e]boxblur=1:10:4:10[f];[f]scale=960:544[1];[b]scale=544:308[2];[1][2]overlay=0:326 console/runtime/video_splicing/2137860_2_64519_cut_one1.mp4
-shortest 最短优先。
/var/ffmpeg_build/bin/ffmpeg -i "concat:2242500_0_94796_cut_ts.ts|2242500_1_71645_cut_ts.ts" -i 202001_background.aac -filter_complex "[1:a]aloop=loop=-1:size=2e+09[out];[out][0:a]amix" -shortest -vcodec h264 -r 28.92 -pix_fmt yuv420p -profile:v High -acodec aac -ar 48000 -ab 128k -y 2242500_splice_2.ts
/var/ffmpeg_build/bin/ffmpeg -i /alidata/www/bzr-homework/homework_limiketang_com/console/runtime/video_splicing/2242500_splice.mp4 -i /alidata/www/bzr-homework/homework_limiketang_com/console/runtime/video_splicing/music.aac -filter_complex "[1:a]volume=0.1[lo];[lo]atrim=7:52[tr];[tr]adelay=6000|6000[out];[out][0:a]amix" -shortest -y /alidata/www/bzr-homework/homework_limiketang_com/console/runtime/video_splicing/2242500_splice_music_2.mp4 > /dev/null 2>&1
/var/ffmpeg_build/bin/ffmpeg -i /alidata/www/bzr-homework/homework_limiketang_com/console/runtime/video_splicing/2631412_splice_2.mp4 -i /alidata/www/bzr-homework/homework_limiketang_com/console/runtime/video_splicing/music.aac -filter_complex "[1:a]volume=0.1[vo];[vo]aloop=loop=-1:size=2e+09[loo];[loo]atrim=7:107[tr];[tr]adelay=6000|6000[out];[out][0:a]amix" -shortest -y /alidata/www/bzr-homework/homework_limiketang_com/console/runtime/video_splicing/2631412_splice_music_2.mp4 > /dev/null 2>&1
/var/ffmpeg_build/bin/ffmpeg -i "concat:head.ts|head_2_cut.ts|2631412_0_46588_cut_ts.ts|2631412_1_50823_cut_scale_ts.ts|2631412_2_39282_cut_ts.ts|end_2_cut.ts|end.ts" -y 2631412_splice_2.mp4
$this->ffmpegPath." -i $path -i {$this->backgroundMusic} -filter_complex \"[1:a]volume=0.1[vo];[vo]aloop=loop=-1:size=2e+09[loo];[loo]atrim={$startTime}:{$endTime}[tr];[tr]adelay=6000|6000[out];[out][0:a]amix\" -shortest -y {$splicingFile}
curl -O -L https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.bz2 && \
tar xjvf nasm-2.14.02.tar.bz2 && \
cd nasm-2.14.02 && \
./autogen.sh && \
./configure --prefix="/usr/local/ffmpeg" --bindir="/usr/local/ffmpeg/bin"
make && \
make install
curl -O -L https://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz && \
tar xzvf yasm-1.3.0.tar.gz && \
cd yasm-1.3.0 && \
./configure --prefix="/usr/local/ffmpeg" --bindir="/usr/local/ffmpeg/bin" && \
make && \
make install
git clone --depth 1 https://code.videolan.org/videolan/x264.git && \
cd x264 && \
PKG_CONFIG_PATH="/usr/local/ffmpeg/lib/pkgconfig" ./configure --prefix="/usr/local/ffmpeg" --bindir="/usr/local/ffmpeg/bin" --enable-static && \
make && \
make install
git clone --depth 1 https://github.com/mstorsjo/fdk-aac && \
cd fdk-aac && \
autoreconf -fiv && \
./configure --prefix="/usr/local/ffmpeg" --disable-shared && \
make && \
make install
curl -O -L https://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz && \
tar xzvf lame-3.100.tar.gz && \
cd lame-3.100 && \
./configure --prefix="/usr/local/ffmpeg" --bindir="/usr/local/ffmpeg/bin" --disable-shared --enable-nasm && \
make && \
make install && \
curl -O -L https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && \
tar xjvf ffmpeg-snapshot.tar.bz2 && \
cd ffmpeg && \
PATH="/usr/local/ffmpeg/bin:$PATH" PKG_CONFIG_PATH="/usr/local/ffmpeg/lib/pkgconfig" ./configure \
--prefix="/usr/local/ffmpeg" \
--pkg-config-flags="--static" \
--extra-cflags="-I/usr/local/ffmpeg/include" \
--extra-ldflags="-L/usr/local/ffmpeg/lib" \
--extra-libs=-lpthread \
--extra-libs=-lm \
--bindir="/usr/local/ffmpeg/bin" \
--enable-gpl \
--enable-libfdk_aac \
--enable-libfreetype \
--enable-libmp3lame \
--enable-libx264 \
--enable-nonfree \
--enable-shared && \
make && \
make install
OP-FTGC5VL MINGW64 /d/www/limi/homework (dev-model)
$
limi@DESKTOP-FTGC5VL MINGW64 /d/www/limi/homework (dev-model)
$
PATH="/usr/local/ffmpeg/bin:$PATH" PKG_CONFIG_PATH="/usr/local/ffmpeg/lib/pkgconfig" ./configure \
--prefix="/usr/local/ffmpeg" \
--pkg-config-flags="--static" \
--extra-cflags="-I/usr/local/ffmpeg/include" \
--extra-ldflags="-L/usr/local/ffmpeg/lib" \
--extra-ldflags="-ldl" \
--extra-libs=-lpthread \
--extra-libs=-lm \
--bindir="/usr/local/ffmpeg/bin" \
--enable-gpl \
--enable-libfdk_aac \
--enable-libfreetype \
--enable-libmp3lame \
--enable-libx264 \
--enable-nonfree \
--enable-shared
PATH="/usr/local/bin:$PATH" PKG_CONFIG_PATH="/usr/local/ffmpeg/lib/pkgconfig" ./configure \
--prefix="/usr/local/ffmpeg" \
--pkg-config-flags="--static" \
--extra-cflags="-I/usr/local/ffmpeg/include" \
--extra-ldflags="-L/usr/local/ffmpeg/lib" \
--extra-libs=-lpthread \
--extra-libs=-lm \
--bindir="/usr/local/bin" \
--enable-gpl \
--enable-libfdk_aac \
--enable-libfreetype \
--enable-libmp3lame \
--enable-libx264 \
--enable-nonfree
./configure --prefix="/usr/local/ffmpeg" --bindir="/usr/local/bin" --disable-shared --enable-nasm
/usr/local/php7.1/bin/php /alidata/www/limicode/homework_limiketang_com/yii video-info-static/push-ids-to-redis
1003 ll
1004 curl -O -L https://banzhuren-assistant.oss-cn-beijing.aliyuncs.com/video_splicing/head_2.mp4
1005 curl -O -L https://banzhuren-assistant.oss-cn-beijing.aliyuncs.com/video_splicing/end_2.mp4
1011 /var/ffmpeg_build/bin/ffmpeg -i head_2.mp4 -vf scale=544:960 -y head_2_cut.mp4
1012 /var/ffmpeg_build/bin/ffmpeg -i end_2.mp4 -vf scale=544:960 -y end_2_cut.mp4
1013 /var/ffmpeg_build/bin/ffmpeg -i end_2_cut.mp4 -c copy -y end_2_cut.ts
1014 /var/ffmpeg_build/bin/ffmpeg -i head_2_cut.mp4 -c copy -y head_2_cut.ts
1016 /var/ffmpeg_build/bin/ffmpeg -i "concat:head.ts|head_2_cut.ts|2631412_0_46588_cut_ts.ts|2631412_1_50823_cut_scale_ts.ts|2631412_2_39282_cut_ts.ts|end_2_cut.ts|end.ts" -y 2631412_splice_2.mp4
1017 /var/ffmpeg_build/bin/ffprobe 2631412_splice_2.mp4
1018 /var/ffmpeg_build/bin/ffmpeg -i /alidata/www/bzr-homework/homework_limiketang_com/console/runtime/video_splicing/2631412_splice_2.mp4 -i /alidata/www/bzr-homework/homework_limiketang_com/console/runtime/video_splicing/music.aac -filter_complex "[1:a]volume=0.2[vo];[vo]aloop=loop=-1:size=2e+09[loo];[loo]atrim=7:107[tr];[tr]adelay=6000|6000[out];[out][0:a]amix" -shortest -y /alidata/www/bzr-homework/homework_limiketang_com/console/runtime/video_splicing/2631412_splice_music_2.mp4
ffmpeg -r 15 -f image2 -loop 1 -i 图片.png -i 音频.mp3 -s 1920x1080 -pix_fmt yuvj420p -t 278 -vcodec libx264
/var/ffmpeg_build/bin/ffmpeg -r 15 -f image2 -loop 1 -i mid.jpg -s 544x960 -pix_fmt yuvj420p -t 5 -vcodec libx264 mid.mp4
开发前重要事项:
1. 检查产品中数据流向的正确性。
2. 识别出需求变化点,程序设计是兼容这些变化。
上线前重要事项:
1. 是否涉及数据库语句。更新语句对现有业务是否有影响。
2. 是否有定时任务脚本。
3. 第三方依赖接口是否已经上线。
PATH="/usr/local/ffmpeg/bin:$PATH" PKG_CONFIG_PATH="/usr/local/ffmpeg/lib/pkgconfig" ./configure \
--prefix="/usr/local/ffmpeg" \
--pkg-config-flags="--static" \
--extra-cflags="-I/usr/local/ffmpeg/include -I/usr/local/cuda/include" \
--extra-ldflags="-L/usr/local/ffmpeg/lib -L/usr/local/cuda/lib64" \
--extra-libs="-lpthread -lm" \
--bindir="/usr/local/ffmpeg/bin" \
--enable-gpl \
--enable-libass \
--enable-libfdk-aac \
--enable-libfreetype \
--enable-libmp3lame \
--enable-libvorbis \
--enable-libx264 \
--enable-nonfree \
--enable-cuda \
--enable-cuvid \
--enable-nvenc \
--enable-libnpp
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
--prefix="$HOME/ffmpeg_build" \
--pkg-config-flags="--static" \
--extra-cflags="-I$HOME/ffmpeg_build/include -I/usr/local/cuda/include" \
--extra-ldflags="-L$HOME/ffmpeg_build/lib -L/usr/local/cuda/lib64" \
--extra-libs=-lpthread \
--extra-libs=-lm \
--bindir="$HOME/bin" \
--enable-gpl \
--enable-libfdk_aac \
--enable-libfreetype \
--enable-libmp3lame \
--enable-libopus \
--enable-libvorbis \
--enable-libvpx \
--enable-libx264 \
--enable-libx265 \
--enable-nonfree \
--enable-cuda \
--enable-cuvid \
--enable-nvenc \
--enable-libnpp
./configure --prefix="/usr/local/ffmpeg" --bindir="/usr/local/ffmpeg/bin"
make prefix="/usr/local/ffmpeg" bindir="/usr/local/ffmpeg/bin"
make install prefix="/usr/local/ffmpeg" bindir="/usr/local/ffmpeg/bin"
