FFmpeg笔记--vcodec和-c:v,-acodec和-c:a的区别?

摘要:
在查看ffmpeg命令时,我们经常看到在某些地方,vcodec用于指定视频解码器,而在一些地方,-c:v用于指定视频译码器。两者之间有什么区别吗?查看-code c:v文档:-c[:stream_specification]编解码器代码[:stream_specification]codecSelectanencoderradecoderformorestreams。输入编码器/编码器的名称picalvaluecopy以指示流未编码。例如,fmpeg-iINPUT-map0-c:vlibx264-c:acopyOUTPUT使用libx264和piesall音频流对所有视频流进行编码。对于每个流m,应用最后一个匹配选项,soffmpeg iINPUT map0 0-ccopy c:v:1libx264-c:a:137libvorbisOUTPUT将复制除第二个视频(将使用libx264编码)和第138个音频(将使用libvorbis编码)之外的所有流。也就是说,-code和-c是等效的。所以--vcodec和-c:v是等价的。文档描述-编解码器可以为指定的流设置编码器,特别是通过stream_Specifier。后来,我们通过ffmpeg-h找到了这两个参数:-abitrateauditiobit rate-bbitratevideobit rate。可以看出,这两个参数分别设置了音频比特率和视频比特率,但这种写入方法已被弃用。相反,我们使用-b:a和-b:v-SuperUser独立的博客地址:FFmpeg注释——vcodec和-c:v、-acodec和-c:a之间的区别?

在看ffmpeg命令的时候经常会看到有些地方使用--vcodec指定视频解码器,而有些地方使用-c:v指定视频解码器,那这两个有没有区别呢?

ffmpeg的官方文档:

-vcodec codec (output)
  Set the video codec. This is an alias for -codec:v.

也就是说-vcodec-codec:v等价。但是并没有说和-c:v等价啊。看一下-codec:v的文档:

-c[:stream_specifier] codec (input/output,per-stream)
-codec[:stream_specifier] codec (input/output,per-stream)
    Select an encoder (when used before an output file) or a decoder (when used before an input file) for one or more streams. codec is the name of a decoder/encoder or a special value copy (output only) to indicate that the stream is not to be re-encoded.

    For example

        ffmpeg -i INPUT -map 0 -c:v libx264 -c:a copy OUTPUT

        encodes all video streams with libx264 and copies all audio streams.

    For each stream, the last matching c option is applied, so

        ffmpeg -i INPUT -map 0 -c copy -c:v:1 libx264 -c:a:137 libvorbis OUTPUT

        will copy all the streams except the second video, which will be encoded with libx264, and the 138th audio, which will be encoded with libvorbis.

也就是说-codec-c是等价的。所以--vcodec-c:v是等价的。

文档说明-codec可以为指定的流设置编码器,具体通过stream_specifier来指定。

-ab和-b参数去哪里了?

在看资料的时候发现有些文字中用到了-ab-b参数,但是官网文档没有这两个参数。。

后来通过ffmpeg- h发现了这两个参数:

-ab bitrate         audio bitrate (please use -b:a)
-b bitrate          video bitrate (please use -b:v)

可以看出这两个参数分别设定音频比特率和视频比特率,但是已经不推荐使用这种写法了,改为使用-b:a-b:v

参考资料

本文独立博客地址:FFmpeg笔记--vcodec和-c:v,-acodec和-c:a的区别? | 木杉的博客

免责声明:文章转载自《FFmpeg笔记--vcodec和-c:v,-acodec和-c:a的区别?》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇针对TCP连接异常断开的分析notepad++插件无法安装的解决方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java—视频处理

  原始视频通常需要经过编码处理,生成m3u8和ts文件方可基于HLS协议播放视频。通常用户上传原始视频,系统 自动处理成标准格式,系统对用户上传的视频自动编码、转换,最终生成m3u8文件和ts文件, 处理流程如下:   1、用户上传视频成功   2、系统对上传成功的视频自动开始编码处理   3、用户查看视频处理结果,没有处理成功的视频用户可在管理界面再次...

开发ffmpeg/live555常见问题错误及解决方法

#include <iostream>using namespace std;extern "C" {#include <libavcodec/avcodec.h> // required headers#include <libavformat/avformat.h>}int main(int argc, cha...

ffmpeg简介

1. ffmpeg下载 ffmpeg是一个开源软件,可以在官方平台下载。可以下载源码到具体平台编译,也可以直接下载某平台已编译好的软件。 http://ffmpeg.org/download.html ffmpeg的使用资料也在官网下载。文档是html格式的英文文档,可以使用谷歌打开,打开时谷歌翻译,拿来做参考还可以。 2. ffmpeg软件组件 ffmp...

deepfakes-FaceSwap使用笔记

安装过程 安装指南网址:https://github.com/deepfakes/faceswap/blob/master/INSTALL.md 需要魔法上网,有些包国内下载太慢了 conda环境 在Anaconda Prompt里,查看所有环境,两个命令都行 conda env listconda info --envs  查看安装的包 conda l...

linux下FFmpeg编译生成ffplay

1、确认Makefile中指定的config.mak(在ffmpeg根目录下)中:CONFIG_FFPLAY=yes,如果不是需要重新./configure 该处还有ffmpeg、ffprobe、ffserver可以打开。 2、编译时需要安装libsdl1.2-dev,命令为sudo apt-get install libsdl1.2-dev,如果安装失败...

linux 树莓派 debian ffmpeg alsa v4l2 录制音频 视频 cannot open audio device 无法播放 声音模糊 画面卡顿 ALSA buffer xrun Thread message queue blocking -pix_fmt

一个基本的命令: ffmpeg -f alsa -i <device> out.mp3 其中, -f 表示设置格式,有format的意思,out.mp3前面可以加上 -f mp3, 因为带了mp3后缀,就省略了。 alsa 表示alsa音频驱动程序的编码格式,它保证后面的音频流可以由alsa解码。具体可根据驱动程序选择。(alsa主页https...