FFmpeg压缩视频后有声音无画面

1.问题如下

使用FFmpeg对上传到centos上的视频文件进行压缩,如下图,有声音却无法显示图像:

把压缩后的视频文件下载到本地,能正常播放。但是使用html的vedio标签进行播放,却如下图,有声音无图片。

2.解决方式

1.安装lib264解码库

此处参考博客:https://pengrl.com/p/20029/

#!/usr/bin/env bash
# 源码编译ffmpeg静态库以及可执行文件
# 需要root权限
# 本脚本的最新版本请访问  https://pengrl.com/p/20029/

set -x

# 编译yasm,ffmpeg依赖的汇编优化的库
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar xvf yasm-1.3.0.tar.gz
cd yasm-1.3.0/
./configure
make
make install
cd ..

# 编译nasm,x264依赖的汇编优化的库
wget https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.gz
tar xvf nasm-2.14.02.tar.gz
cd nasm-2.14.02/
./configure
make
make install
cd ..

# 编译x264
wget https://code.videolan.org/videolan/x264/-/archive/master/x264-master.tar.bz2
tar xvf x264-master.tar.bz2
cd x264-master/
./configure
make
make install-lib-static
cd ..

# 编译ffmpeg
wget https://ffmpeg.org/releases/ffmpeg-4.2.2.tar.bz2
tar xvf ffmpeg-4.2.2.tar.bz2
cd ffmpeg-4.2.2
./configure --disable-debug --enable-static --enable-libx264 --enable-gpl --extra-libs=-ldl --enable-openssl
make
make install
./ffmpeg

2.执行压缩视频命令

./ffmpeg :此处为linux的ffmpeg的bin目录下的ffmpeg命令

-y:指如果此处有重名文件,不用提示,自动覆盖

-i:指定输入文件

-r 10 -b:a 32k:指定成压缩的编码参数

-vcodec copy:设定视频编解码器,此处即设为原视频文件的视频编码

-max_muxing_queue_size 9999:防止执行命令时出现“Too many…”报错

./ffmpeg -y -i    /home/ftpFile/images/gzsHnDjM.mp4  -r 10 -b:a 32k -vcodec copy -max_muxing_queue_size 9999  /home/ftpFile/images/gzsHnDjMCompress2.mp4

3.效果

执行成功后,压缩文件小于原文件大小

并且压缩文件能够正常播放:

原文 FFmpeg压缩视频后有声音无画面_瓜仙人的博客-CSDN博客

★文末名片可以免费领取音视频开发学习资料,内容包括(FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,srs)以及音视频学习路线图等等。

见下方!↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

 

猜你喜欢

转载自blog.csdn.net/yinshipin007/article/details/131921353