1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 利用ffmpeg 把.mp4转换为.flv

利用ffmpeg 把.mp4转换为.flv

时间:2020-12-30 21:54:37

相关推荐

利用ffmpeg 把.mp4转换为.flv

1. 下载安装 ffmpeg

Download FFmpeg

windows下载编译之后的exe文件,放到path环境变量中.

Linux 下

tar xvf xxx.tar.bz2./configure --prefix=/usr/local/ffmpegmake -j2sudo make installsudo ln -s /usr/local/ffmpeg /usr/local/bin/ffmpeg

2. 执行命令行

ffmpeg -i ~/media/dragon.mp4 -c:v copy -c:a copy dragon.flv

参考文档:ffmpeg 转换 mp4 成 flv - Lemo_wd - 博客园

3. 运行流媒体服务

git clonegit:///gwuhaolin/livego

go build

./livego

运行结果如下:

/02/20 16:46:10 main.go:118: start livego, version master

/02/20 16:46:10 liveconfig.go:35: starting load configure file(.livego.json)......

/02/20 16:46:10 liveconfig.go:42: loadconfig:

{

"server": [

{

"appname": "live",

"liveon": "on",

"hlson": "on"

}

]

}

/02/20 16:46:10 liveconfig.go:49: get config json data:{[{live on on []}]}

/02/20 16:46:10 main.go:62: hls server enable....

/02/20 16:46:10 main.go:70: RTMP Listen On :1935

/02/20 16:46:10 main.go:43: HLS listen On :7002

/02/20 16:46:10 main.go:87: HTTP-FLV listen On :7001

/02/20 16:46:10 main.go:105: HTTP-Operation listen On :8090

4.上行推流:通过RTMP协议把视频流推送到rtmp://47.93.27.106:1935/live/dragon

例如使用

ffmpeg -re -i ~/media/dragon.flv -c copy -f flv rtmp://47.93.27.106:1935/live/dragon

推送

5. 下行播放:

支持以下三种播放协议,播放地址如下:

rtmp://47.93.27.106:1935/live/dragon

http://47.93.27.106:7001/live/dragon.flv

http://47.93.27.106:7002/live/dragon.m3u8

6. 用vlc player播放

Media => Open Network Stream

输入URL => Player

如果在网页端

# 把MP4格式的视频转换为flv格式

ffmpeg -i "2-2-CostFunction(8min).mp4" -c:v libx264 -ar 22050 -crf 28 "2-2-CostFunction(8min).flv"

# 把视频推到流服务器

ffmpeg -re -i ~/media/CostFunction.flv -c copy -f flv rtmp://47.93.27.106:1935/live/movie

# 用http-flv协议拉流 通过flv.js播放 /bilibili/flv.js

# npm install -g gulp

# npm install

# gulp release # 生成合并编译压缩后的flv.js

# 调用flv.js的api播放视频 (下载的代码中有示例,改一下视频源的链接)

http://47.93.27.106:7001/live/CostFunction.flv

截取视频封面图php调用ffmpeg命令行,ffmpeg.so php扩展不支持php7

解压后得到下面的内容

GitHub - PHP-FFMpeg/PHP-FFMpeg: An object oriented PHP driver for FFMpeg binary

/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz

<?phpnamespace BusinessSchool\Controllers\Admin;use App\Http\Controllers\Controller;use Illuminate\Http\Request;use FFMpeg\FFMpeg;use FFMpeg\Coordinate\TimeCode;/*** Class VideoController* @package BusinessSchool\Controllers\Admin* @ref /PHP-FFMpeg/PHP-FFMpeg*/class VideoController extends Controller{/*** 取视频封面图* @param Request $request* @return \FFMpeg\Media\Frame*/public function test(Request $request) {$src = $request->input("src", "/file//06/07/1623065377185.mp4");// 下载/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz// 放到容器中解压到/workspace/ext/ffmpeg-4.4-amd64-static$config = array('ffmpeg.binaries' => '/workspace/ext/ffmpeg-4.4-amd64-static/ffmpeg','ffprobe.binaries' => '/workspace/ext/ffmpeg-4.4-amd64-static/ffprobe','timeout'=> 3600, // The timeout for the underlying process'ffmpeg.threads' => 12, // The number of threads that FFMpeg should use);$ffmpeg = FFMpeg::create($config);/** @var $video \FFMpeg\Media\Video */$video = $ffmpeg->open($src);$frame = $video->frame(TimeCode::fromSeconds(3));$img = "/tmp/".uuid().'.jpg';$frame->save($img);// 输出图片$info = getimagesize($img);// 获取文件后缀$imgExt = image_type_to_extension($info[2], false);$fun = "imagecreatefrom".$imgExt;// 1.由文件或 URL 创建一个新图象。如:imagecreatefrompng ( string $filename )$imgInfo = $fun($img);//$mime = $info['mime'];$mime = image_type_to_mime_type(exif_imagetype($img)); //获取图片的 MIME 类型header('Content-Type:'.$mime);$quality = 100;// 输出质量,JPEG格式(0-100),PNG格式(0-9)if($imgExt == 'png') $quality = 9;$getImgInfo = "image{$imgExt}";//2.将图像输出到浏览器或文件。如: imagepng ( resource $image )$getImgInfo($imgInfo, null, $quality);imagedestroy($imgInfo);unlink($img);exit(0);}}

pcm格式转换为mp3

ffmpeg -y -ac 1 -ar 16000 -f s16le -i 6316d6df32177.pcm -c:a libmp3lame -q:a 2 output.mp3

pcm格式转换为wav

ffmpeg -ar 16000 -ac 2 -f s16le -i 6316d6df32177.pcm 6316d6df32177.wav

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。