FFmpeg命令实战(中)

news2024/12/29 10:47:27

标题

  • 1.ffplay命令播放
  • 2.ffplay简单过滤器
  • 3 .ffmpeg命令参数
    • 1.主要参数
    • 2. 音频参数
    • 3.视频参数
  • 4.ffmpeg命令提取音视频数据
    • 1.保留封装格式
    • 2.提取视频
    • 3.提取音频
  • 5.ffmpeg提取像素格式
    • 1.提取YUV
    • 2.提取RGB
    • 3.提取PCM
  • 5.ffmpeg命令转封装格式
    • 1.保持编码格式
    • 2.改变编码格式
    • 3.修改帧率
    • 4.修改视频码率
    • 5.修改音频码率
    • 6.修改音视频码率
    • 7.修改视频分辨率
    • 8.修改音频采样率
  • 6.ffmpeg命令过滤器

1.ffplay命令播放

播放本地视频
ffplay test.mp4
播放网络流(拉流)
ffplay rtmp://ns8.indexforce.com/home/mystream
拉流地址无用的话可能是失效了
强制解码器播放(可能播放失败)
mpeg4解码器 :ffplay -vcodec mpeg4 test.mp4
h264解码器:ffplay -vcodec h264 test.mp4
禁用音频或者视频
禁用音频:ffplay -an test.mp4
禁用视频:ffplay -vn test.mp4
播放YUV数据
ffplay -pixel_format yuv420p -video_size 320x240 -framerate 5 yuv420p_320x240.yuv
pixel_format选项是指定像素格式
video_size选项是设置视频分辨率
framerate选项是设置播放帧率
播放PCM数据
ffplay -ar 48000 -ac 2 -f f32le 48000_2_f32le.pcm
-ar 设置音频采样率(以Hz为单位)(从0到INT_MAX)(默认0)
-ac 设置音频通道数(从0到INT_MAX)(默认0)
-f 选项用于指定要播放的媒体文件的输入格式

2.ffplay简单过滤器

视频旋转
ffplay -vf transpose=1 test.mp4
视频反转
水平翻转:ffplay -vf hflip test.mp4
垂直翻转:ffplay -vf vflip test.mp4
视频旋转和反转
ffplay -vf hflip,transpose=1 test.mp4
视频变速播放
2倍数: ffplay -vf setpts=PTS/2 test.mp4
音频变速播放
2倍数: ffplay -af atempo=2 test.mp4
音视频同时变速
2倍数: ffplay -vf setpts=PTS/2 -af atempo=2 test.mp4

3 .ffmpeg命令参数

1.主要参数

-i 设置输入流
-f 设定输出格式(可以省略)
-ss 设置开始时间
-t 设置时间长度

2. 音频参数

-aframes 设置输出音频帧数,不是帧率
-b:a 设置音频码率
-ar 设置音频采样率
-ac 设置声音的声道数
-acodec 设置音频编解码器,如果需要使用原编解码器需要使用copy
-an 去除音频,也就是有视频和音频的时候,不要音频
-af 设置音频过滤器
样例:
ffmpeg -i test.mp4 -b:a 192k -ar 48000 -ac 2 -acodec libmp3lame -aframes 200 out2.mp3
含义是:将test.mp4 转变成音频码率为192kb/s,音频采样率为48000,2声道,编码为MP3,音频帧数为200的MP3文件out2.mp3
在这里插入图片描述

3.视频参数

-vframes 设置视频帧数,不是帧率
-b/-b:v 设置视频码率
-r 设定视频帧速率
-s 设置视频分辨率
-vn 去除视频,也就是有视频和音频的时候,不要视频
-aspect 设置视频纵横比
-vcodec 设置视频编解码器,如果需要使用原编解码器使用copy即可
-vf 设置视频过滤器
样例:
ffmpeg -i test.mp4 -vframes 300 -b:v 300k -r 30 -s 640x480 -aspect 16:9 -vcodec libx265 out3.mp4
将视频test.mp4转变成帧数为300, 码率为300kb/s 帧率为30,分辨率为540*480 纵横比为16:9 编解码器为libx265 的视频out3.mp4
根据帧数和帧率可以计算得出视频时间大概为10s
在这里插入图片描述

4.ffmpeg命令提取音视频数据

1.保留封装格式

ffmpeg -i test.mp4 -acodec copy -vn audio.mp4
ffmpeg -i test.mp4 -vcodec copy -an video.mp4

2.提取视频

保留编码格式:ffmpeg -i test.mp4 -vcodec copy -an test_copy.h264
强制格式:ffmpeg -i test.mp4 -vcodec libx264 -an test_h264.mp4

3.提取音频

保留编码格式:ffmpeg -i test.mp4 -acodec copy -vn test.aac
强制格式:ffmpeg -i test.mp4 -acodec libmp3lame -vn test.mp3

5.ffmpeg提取像素格式

1.提取YUV

提取3秒数据,分辨率和源视频一致
ffmpeg -i test_1280x720.mp4 -t 3 -pix_fmt yuv420p yuv420p_orig.yuv
提取3秒数据,分辨率转为320x240
ffmpeg -i test_1280x720.mp4 -t 3 -pix_fmt yuv420p -s 320x240 yuv420p_320x240.yuv

2.提取RGB

提取3秒数据,分辨率转为320x240
ffmpeg -i test.mp4 -t 3 -pix_fmt rgb24 -s 320x240 rgb24_320x240.rgb
RGB和YUV之间的转换
ffmpeg -s 320x240 -pix_fmt yuv420p -i yuv420p_320x240.yuv -pix_fmt rgb24rgb24_320x240_2.rgb

3.提取PCM

ffmpeg -i buweishui.mp3 -ar 48000 -ac 2 -f s16le 48000_2_s16le.pcm
ffmpeg -i buweishui.mp3 -ar 48000 -ac 2 -sample_fmt s16 out_s16.wav
ffmpeg -i buweishui.mp3 -ar 48000 -ac 2 -acodec pcm_s16le out2_s16le.wav
ffmpeg -i buweishui.mp3 -ar 48000 -ac 2 -f f32le 48000_2_f32le.pcm
ffmpeg -i test.mp4 -t 10 -vn -ar 48000 -ac 2 -f f32le 48000_2_f32le_2.pcm

5.ffmpeg命令转封装格式

1.保持编码格式

ffmpeg -i test.mp4 -vcodec copy -acodec copy test_copy.ts
ffmpeg -i test.mp4 -codec copy test_copy2.ts

2.改变编码格式

ffmpeg -i test.mp4 -vcodec libx265 -acodec libmp3lame out_h265_mp3.mkv

3.修改帧率

ffmpeg -i test.mp4 -r 15 output2.mp4
ffmpeg -i test.mp4 -r 15 -codec copy output.mp4 (错误命令,没有改变帧率)

4.修改视频码率

ffmpeg -i test.mp4 -b 400k output_b.mkv (此时音频也被重新编码,因为ffmpeg 会根据后缀名来重新编码)
ffmpeg -i test.mp4 -b:v 400k output_bv.mkv

5.修改音频码率

ffmpeg -i test.mp4 -b:a 192k output_ba.mp4
如果不想重新编码video,需要加上-vcodec copy

6.修改音视频码率

ffmpeg -i test.mp4 -b:v 400k -b:a 192k output_bva.mp4

7.修改视频分辨率

ffmpeg -i test.mp4 -s 480x270 output_480x270.mp4

8.修改音频采样率

ffmpeg -i test.mp4 -ar 44100 output_44100hz.mp4

6.ffmpeg命令过滤器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/553170.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

String源码

介绍 1&#xff09;String 是一个 final 类&#xff0c;即不能被继承的类 。 2&#xff09;String类实现了 java.io.Serializable 接口&#xff0c;可以实现序列化。 3&#xff09;String类实现了 Comparable< String>&#xff0c;可以用于比较大小&#xff08;按顺序…

49天精通Java,第34天,finalize、引用计数、JVM停止复制、JVM即时编译器

目录 一、finalize二、引用计数三、JVM停止复制四、JVM即时编译器五、惰性评估 大家好&#xff0c;我是哪吒。 &#x1f3c6;本文收录于&#xff0c;49天精通Java从入门到就业。 全网最细Java零基础手把手入门教程&#xff0c;系列课程包括&#xff1a;基础篇、集合篇、Java8…

chatgpt赋能Python-pythonchallenge

Python Challenge: 挑战你的Python技能 如果你正在寻找一种提高Python编程技能的有趣方法&#xff0c;那么Python Challenge是一个不错的选择。Python Challenge是一个在线的puzzle游戏&#xff0c;每个挑战都需要使用Python编写程序来解决。这些挑战是由一个名叫Nadav Samet的…

centos或ubuntu部署OpenSips

参考 Centos7安装opensips超详细教程 centos7 部署opensips信令服务器 【死磕opensips】sip协议解析 开源SIP Kamailio OpenSIPS的四种均衡负载算法详解和SBC呼叫路由 基于SIP协议的性能测试——奇林软件kylinPET OpenSIPS实战&#xff08;一&#xff09;&#xff1a;OpenSIPS…

【消息中间件】RocketMQ如何保证消息的可靠性?

文章目录 前言一 、发送端消息可靠性1. 同步发送2. 异步发送3. 单向发送4. 发送重试策略 二、存储端消息可靠性1. 存储可靠性挑战2. 同步刷盘3. 异步刷盘&#xff08;默认&#xff09;4. 过期文件删除 三、消费端消息可靠性1. 消费重试2. 死信队列3. 消息回溯 四、总结参考与感…

一文读懂“大语言模型”

1、背景 本文基于谷歌云的官方视频&#xff1a;《Introduction to Large Language Models》 &#xff0c;使用 ChatGPT4 整理而成&#xff0c;希望对大家入门大语言模型有帮助。 本课程主要包括以下 4 方面的内容&#xff1a; 大语言模型的定义描述大语言模型的用例解释提示…

网络安全分组混战靶机攻击与加固——BPlinux系列

网络安全分组混战靶机攻击与加固——BPlinux系列 目录 一、渗透过程 二、加固过程 三、中职网络安全竞赛知识星球 一、渗透过程 #这是一个以前混战阶段用的靶机然后C模块也会用 1、我们先使用nmap --scriptvuln(这是nmap自带的脚本&#xff0c;可以扫描可利用的漏洞&…

计算机网络|第四章:网络层:数据平面

前文回顾&#xff1a;第三章&#xff1a;传输层 运输层依赖于网络层的主机到主机的通信服务&#xff0c;提供各种形式的进程到进程的通信。网络层与传输层和应用层不同的是&#xff0c;在网络中的每一台主机和路由器中都有一个网络层部分。正因如此&#xff0c;网络层协议是协议…

metaRTC+ZLMediaKit实现webrtc的推拉流

概述 ZLMediaKit是一个基于C11的高性能运营级流媒体服务框架&#xff0c;是一个支持webrtc SFU的优秀的流媒体服务器系统。 metaRTC新版本支持whip/whep协议&#xff0c;支持whip/whep协议的ZLMediaKit推拉流。 信令通信 ZLMediaKit新版本支持whip和whep协议&#xff0c;支…

065:cesium设置带有箭头的线材质(material-9)

第065个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中设置带有箭头的线材质,请参考源代码,了解PolylineArrowMaterialProperty的应用。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共82行)相关API参考…

Microsoft Office 2010安装

哈喽&#xff0c;大家好。今天一起学习的是office2010的安装&#xff0c;有兴趣的小伙伴也可以来一起试试手。 一、测试演示参数 演示操作系统&#xff1a;Windows 7 不建议win10及以上操作系统使用 系统类型&#xff1a;64位 演示版本&#xff1a;SW_DVD5_Office_Profession…

Ceres简介及示例(9)On Derivatives(Numeric derivatives)

使用analytic derivatives的另一个极端是使用numeric derivatives。关键是&#xff0c;对函数f(x)关于x的求导过程可以写成极限形式: Forward Differences前向差分 当然&#xff0c;在计算机中&#xff0c;我们不能执行数值求极限操作&#xff0c;所以我们要做的是&#xff0…

squid的基本代理

一、Squid代理服务器的概述 squid 作为一款服务器代理工具&#xff0c;可以缓存网页对象&#xff0c;减少重复请求&#xff0c;从而达到加快网页访问速度&#xff0c;隐藏客户机真实IP&#xff0c;更为安全。 Squid主要提供缓存加速、应用层过滤控制的功能 1、squid代理的工…

攻击者使用“Geacon”Cobalt Strike工具瞄准macOS

威胁行为者现在正在部署一种名为 Geacon 的 Cobalt Strike 的 Go 语言实现&#xff0c;它于四年前首次出现在 GitHub 上。 他们正在使用红队和攻击模拟工具来针对 macOS 系统&#xff0c;其方式与过去几年在 Windows 平台上使用 Cobalt Strike 进行后开发活动的方式大致相同。…

Rust每日一练(Leetday0007) 删除结点、有效括号、合并链表

目录 19. 删除链表的倒数第 N 个结点 Remove-nth-node-from-end-of-list &#x1f31f;&#x1f31f; 20. 有效的括号 Valid Parentheses &#x1f31f; 21. 合并两个有序链表 Mmerge-two-sorted-lists &#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Ru…

web搭建服务器端+创建web后端项目详细步骤

一、搭建服务器端 Web服务器&#xff1a;用于响应来自Web客户端&#xff08;如浏览器、移动应用程序等&#xff09;的请求并提供Web页面和其他Web资源的软件程序或计算机系统。它允许用户在Web浏览器中输入网址&#xff0c;通过HTTP协议向服务器发送请求&#xff0c;并收到Web页…

用原生JS实现虚拟列表(IT枫斗者)

用原生JS实现虚拟列表 介绍 最近在开发需求的时候&#xff0c;有用到 Antd 的虚拟列表组件 rc-virtual-list &#xff0c;粗略地看了一下源码&#xff0c;于是萌生了自己写一个虚拟列表的想法。当一个列表需要渲染大量数据的时候是非常耗时的&#xff0c;而且在列表滚动的过程…

Golang每日一练(leetDay0073) 实现前缀树、最短子数组

目录 208. 实现 Trie (前缀树) Implement-trie-prefix-tree &#x1f31f;&#x1f31f; 209. 长度最小的子数组 Minimum-size-subarray-sum &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Rust每日一练 专栏 Golang每日一练 专栏 Python每…

多线程的三种创建方式及各自的优缺点分析

第一种方式&#xff1a;继承Thread类&#xff0c;覆写run()方法 1、创建一个MyThread类&#xff0c;继承Thread类&#xff1b; 2、覆写run()方法&#xff0c;在run()方法内编写任务代码&#xff1b; 3、创建MyThread类&#xff0c;需要注意的是&#xff0c;如果想要给线程命名…

传染病学模型 | Matlab实现SI传染病学模型 (SI Epidemic Model)

文章目录 效果一览基本描述模型介绍程序设计参考资料效果一览 基本描述 传染病学模型 | Matlab实现SI传染病学模型 (SI Epidemic Model) 模型介绍 SI传染病模型是一种基于微分方程的流行病学模型,用于模拟传染病在人群中的传播过程。SI模型中,人群被划分为易感者(S)和感染者…