1. 下载安装 ffmpeg

Download FFmpeg

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

Linux 下

tar xvf xxx.tar.bz2
./configure --prefix=/usr/local/ffmpeg
make -j2
sudo make install
sudo 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 clone git://github.com/gwuhaolin/livego

go build

./livego

运行结果如下:

2020/02/20 16:46:10 main.go:118: start livego, version master
2020/02/20 16:46:10 liveconfig.go:35: starting load configure file(.livego.json)......
2020/02/20 16:46:10 liveconfig.go:42: loadconfig: 
{
  "server": [
    {
      "appname": "live",
      "liveon": "on",
      "hlson": "on"
    }
  ]
}
2020/02/20 16:46:10 liveconfig.go:49: get config json data:{[{live on on []}]}
2020/02/20 16:46:10 main.go:62: hls server enable....
2020/02/20 16:46:10 main.go:70: RTMP Listen On :1935
2020/02/20 16:46:10 main.go:43: HLS listen On :7002
2020/02/20 16:46:10 main.go:87: HTTP-FLV listen On :7001
2020/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播放 https://github.com/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

https://johnvansickle.com/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 https://github.com/PHP-FFMpeg/PHP-FFMpeg*/
class VideoController extends Controller
{/*** 取视频封面图* @param Request $request* @return \FFMpeg\Media\Frame*/public function test(Request $request) {$src = $request->input("src", "https://www.tuopaishede.cn/file/2021/06/07/1623065377185.mp4");// 下载https://johnvansickle.com/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

利用ffmpeg 把.mp4转换为.flv相关推荐

  1. java利用FFMpeg将mp4转换为gif

    网上和官方资料整合 存在问题,在不丢帧的情况下转换后的gif会比原始mp4文件大很多. package jinx; import java.io.BufferedReader; import java ...

  2. 使用jsmpegjs前,先把利用 ffmpeg 将 MP4 格式的文件转换为 ts 格式

    利用 ffmpeg 将 MP4 格式的文件转换为 TS 格式 ffmpeg官网:http://ffmpeg.org/download.html ffmpeg下载地址: https://github.c ...

  3. ffplay flv mp4 转_利用 FFmpeg 将 MP4 转成 FLV

    最近做一个小项目,要在线播放录制的 MP4 视频,想开源的 flash player 或 html 5 可以播放.可,虽然 MP4 是 H.264 编码,但就是播放不了.可能是封装方式(PS 方式)不 ...

  4. c++基于ffmpeg实现mp4转flv

    系列音视频开发 文章目录 系列音视频开发 前言 一.mp4.flv格式 二.mp4 转封装flv 源码实现 总结 前言 音视频文件转封装操作就是把一种格式转换为另外一种格式,例如从 flv 转到 MP ...

  5. 利用ffmpeg将mp4视频转换成多张jpg图片

    分离视频音频流 ffmpeg -i input_file -vcodec copy -an output_file_video //分离视频流 ffmpeg -i input_file -acodec ...

  6. 利用FFmpeg完成 mp4格式转avi格式

    我们可以用ffmpeg来完成一些很有用的功能.这篇文章就来说说,怎样用ffmpeg来完成视频格式的转换. 首先在我们搭建好ffmpeg环境的基础上,如下链接所示 https://blog.csdn.n ...

  7. 利用ffmpeg转换mp4文件

    这个是我今天整理项目的时候无意发现的,当时主要是用它来转换flv文件在手机上使用,后来买了psp之后就没有用了,记录一下,以后写这种类似的程序可以参考. class VideoConverter : ...

  8. python3 利用ffmpeg把音频转换为16khz的wav文件

    最近语音识别需要转换为16khz 16位的wav文件,这里分享一下我的代码: 这里默认电脑已经安装好ffmpeg,没安装好的话,mac用hombrew安装一下就行了,然后: import osdef ...

  9. python 视频截取 利用ffmpeg截取MP4视频片段

    学python没多久,发现OpenCV做的视频截取出来的视频无声的 水平有限也没搞明白怎么处理,后面用FFmpeg整了个,如学弟.学妹有用到我这个自行百度怎么配置FFmpeg环境配置,配置好再测试代码 ...

最新文章

  1. java 继承 意义_Java中继承,类的高级概念的知识点
  2. 这是我读过写得最好的【秒杀系统架构】分析与实战!
  3. html标签在html页面正常显示而不被解析
  4. python常见错误-python中的错误有什么
  5. ai怎么画循环曲线,怎么用 Adobe Illustrator 画出曲率连续的曲线?
  6. 一步一步教你如何将 yolov3/yolov4 转为 caffe 模型
  7. monkey测试_爱码小士丨 APP稳定性测试(附视频详解)
  8. 命中率_数据说话!詹姆斯的“皇家射手团”命中率为近十年最低
  9. 阿里云李飞飞:今年将帮1000家企业“去O”,完成10000套传统数据仓库上云
  10. 工业大数据的应用与实践
  11. 证明:含有n个结点的二叉链表中含有n+1个空链域
  12. C#毕业设计——基于C#+asp.net+SQL server的房地产信息管理系统设计与实现(毕业论文+程序源码)——房地产信息管理系统
  13. Remoting整理
  14. jQuery倒计时插件
  15. 百度apollo自动驾驶modules\planning\tasks\optimizers\path_time_heuristic\PathTimeHeuristicOptimizer类代码详解
  16. react 控制台 Maximum call stack size exceeded 如何解决
  17. 切莫让CDN缓存你的动态文件
  18. AWT/SWT/SWING 区别和联系
  19. RK3399 Android7.1在uboot中设置GPIO的电平无效
  20. 服务器攻击瘫痪,网站瘫痪,企业如何应对频发

热门文章

  1. .\Obj\Template.axf: error: L6002U: Could not open file .\obj\core_cm3.o: No such file or directory
  2. 备考CSP刷题经验总结
  3. 安装Anaconda出现Error opening file for writing错误最简单有效的办法
  4. 甲级测绘资质审批常见问题-甲级测绘资质如何办理?
  5. 凌晨3点不回家,你不要老婆孩子了?
  6. 联合国发布AI报告:自动化和AI对亚洲有巨大影响
  7. 从IMDB上爬取MovieLens数据集中的详细电影信息
  8. 城乡规划编制资质很多地区已经开通新办了,那你知道怎么办吗?
  9. 长沙麻将APP(起手胡)
  10. 关键链方法的多项目监控技术