ffmpeg的使用

编辑于 2023-11-06 13:59:42 阅读 881

应用场景1

ffmpeg -i http://xxx.com/index.m3u8 -c copy -bsf:a aac_adtstoasc output.mp4

通过浏览器看视频的时候,想下载下来。打开开发者工具,network,如果看到浏览器在不断的加载.ts结尾的文件,这时候筛选下m3u8,如果找到了,就可以用这种方法下载

应用场景2

#mov转mp4
ffmpeg -i 123.mov -vcodec libx264 -preset fast -crf 20 -y -vf "scale=1280:-1" -acodec libmp3lame -ab 128k new.mp4
#webm转mp4
ffmpeg -i input.webm -crf 17 -c:v libx264 output.mp4
#压缩mp4,适合画面不大变化的
ffmpeg -i input.mp4 -r 10 -b:a 32k output.mp4
#从mp4视频中提取出音频
ffmpeg -i input.mp4 -acodec pcm_s16le -f s16le -ac 1 -ar 16000 -f wav output.wav
#视频缩略图(视频所有帧图片)
ffmpeg -i input.mp4 -f image2 %05d.jpg
#输出指定时间的图片
ffmpeg -i input.flv -ss 00:00:02 -frames:v 1 out.png
#mp4转m3u8
ffmpeg -i ./aaa.mp4 -hls_time 10 -hls_list_size 0 -hls_segment_filename ./aaa_%05d.ts ./aaa.m3u8

#-hls_time 设置每片的长度,单位为秒
#-hls_list_size n: 保存的分片的数量,设置为0表示保存所有分片
#-hls_segment_filename :段文件的名称,%05d表示5位数字

使用视频文件直播

本地视频文件

~/Movies/11月5日.mp4为例

获取推流地址

以哔哩哔哩为例:直播中心 -> 我的直播间 -> 开播设置

  • 服务器地址:rtmp://live-push.bilivideo.com/live-bvc/
  • 串流密钥:?streamname=live_3333&key=777&schedule=rtmp&pflag=1

推流地址=服务器地址+串流密钥,即:rtmp://live-push.bilivideo.com/live-bvc/?streamname=live_3333&key=777&schedule=rtmp&pflag=1

开始直播

cuiwei@weideMacBook-Pro ~ % ffmpeg -re -i ~/Movies/11月5日.mp4 -vcodec copy -acodec aac -b:a 96k -f flv "推流地址"

参数说明

“-vcodec copy” 这种- + 字母的 就是一个完整的配置项 ‘-配置key 配置value’

  • -re 就是real-time 直播必须带这参数
  • -i "xxx.mp4" 就是input 媒体输入
  • -stream_loop -1 循环播放
  • -vcodec copy 就是video decode 视频解码 copy就是沿用输入视频的解码方式
  • -acodec aac 就是audio decode 音频解码 aac是音频的解码方式
  • -b:a 96k 就是bit rate 单位是 kb/s
  • -f flv 就是force format flv 强制输出flv格式

参考

https://zhuanlan.zhihu.com/p/110716546

https://www.bilibili.com/read/cv27181646/

广而告之,我的新作品《语音助手》上架Google Play了,欢迎下载体验