FFmpeg常用命令

目录

视频解封装,提取音频或者视频数据

分离视频中的音频和视频数据。提取的视频与源视频使用相同编码器,舍弃音频数据

ffmpeg -i input.mov -c:v copy -an output.mov (-c:v copy表示保持源文件编码器,-an表示舍弃音频数据)

分离视频中的音频和视频数据。提取的音频与源视频中音频使用相同编码器,舍弃视频数据

ffmpeg -i input.mov -c:a copy -vn output.mov (-c:a copy表示目标保持源文件编码器相同,-vn表示舍弃视频数据)

从某时间间隔,剪切一段视频。目标与源使用相同的编码器。

ffmpeg -i input.mov -ss 5 -t 10 -c copy ouput.mov (-ss 5表示从第5秒开始,-t 10表示提取10秒,-c copy表示目的与源使用相同的编码器)

从视频文件中抽取出可以播放的h.264

ffmpeg -i input.flv -c copy -bsf h264_mp4toannexb output.h264
ffmpeg -i input.mp4 -vcodec copy -an -bsf h264_mp4toannexb output1.h264
ffmpeg -i input.mp4 -vcodec copy -bsf h264_mp4toannexb output.h264

视频格式转换

使用ffmpeg默认的目标文件编码器和目标编码参数,将源格式转目的封装格式

ffmpeg -i xxx.mov ouput.avi
结果,文件output.avi封装格式内部使用的编码格式可能与 xxx.mov使用的编码格式不同,用户没有在命令行指定目标文件的参数信息,ffmpeg使用默认的参数进行转码。

ffmpeg保证目的文件与源文件一样的视频编码指令,不改变源格式的编码器格式,只改变源文件的封装格式,将源格式转目的封装格式

use ffmpeg to transform mp4 to same high-quality avi file? - Ask Ubuntu
由于只是在封装层转换,所以速度非常快,最大的保证一致
ffmpeg -i filename.mp4 -vcodec copy -acodec copy filename.avi

ffmpeg保证目的文件与源文件一样的视频编码质量,改变目标文件的编码器

ffmpeg改变源文件的编码格式,进行封装和编码格式的转换,但是要保证质量,各种参数与转换前一致
ffmpeg -i input.avi -sameq -vcodec libx264 -acodec libmp3lame output.mpg
Option ‘sameq’ was removed. If you are looking for an option to preserve the quality (which is not what -sameq was for), use -qscale 0 or an equivalent quality factor option.
Failed to set value ‘1’ for option ‘sameq’: Invalid argument
Error parsing global options: Invalid argument

解决:
ffmpeg -i youtube-101.mp4 -qscale:v 0 -qscale:a 0 -vcodec libx264 -acodec aac output2.mp4

指定目标文件的编码器格式,将源格式转目的封装格式

ffmpeg -i xxx.mov -c:v mjpeg ouput.avi (v表示视频,-c表示指定目标文件编码器格式)

mp4转avs

  1. ffmpeg -formats |grep avs
    D avs AVS
    DE cavsvideo raw Chinese AVS (Audio Video Standard) video
  2. ffmpeg -codecs |grep avs
    D.V.L. avs AVS (Audio Video Standard) video
    DEV.L. cavs Chinese AVS (Audio Video Standard) (AVS1-P2, JiZhun profile) (encoders: libxavs )
  3. 保证上面为DE,转换需要编码器,如果没有AVS编码器,需要安装
  4. ffmpeg -i SampleVideo_360x240_10mb.mp4 -c:v cavs -f cavsvideo fuck.avs

mp4转rv编码器

ffmpeg -i SampleVideo_360x240_10mb.mp4 -c:v rv20 -f rm SampleVideo_360x240_10mb.rmvb

mp4文件转换为hls文件

ios - Mp4 to HLS using ffmpeg - Stack Overflow
ffmpeg -i input.mp4 -profile:v baseline -level 3.0 -s 640x360 -start_number 0 -hls_time 10 -hls_list_size 0 -f hls index.m3u8

将 hls的 ts合并为原格式

FFMpeg无损合并视频的多种方法 - 专注流媒体技术与方案! - CSDN博客

调整视频播放速度

  1. 视频播放时,2倍速播放,保持图片和声音同步
    ffmpeg -i youtube-101.mp4 -vf setpts=PTS/2 -af atempo=2.0 -r:v 60 output.mp4

  2. 视频播放时,4倍速播放,但是图片和声音不同步了
    ffmpeg -i youtube-101.mp4 -vf setpts=PTS/4 youtube-101-4speed.mp4

YUV序列转AVI

ffmpeg –s w*h –pix_fmt yuv420p –i input.yuv –vcodec mpeg4 output.avi

切割

ffmpeg -ss 00:00:00 -i input.mp4 -c copy -t 60 output.mp4
-ss 表示视频分割的起始时间,-t 表示分割时长,同时也可以用 00:01:00表示
注意 :-ss 要放在 -i 之前
利用FFmpeg进行视频文件进行分割 - CSDN博客

缩放

下面两条命令有相同效果
ffmpeg -i input.mpg -s 320x240 output.mp4
ffmpeg -i input.mpg -vf scale=320:240 output.mp4

对输入视频成比例缩放
改变为源视频一半大小
ffmpeg -i input.mpg -vf scale=iw/2:ih/2 output.mp4
改变为原视频的90%大小:
ffmpeg -i input.mpg -vf scale=iw*0.9:ih*0.9 output.mp4

举例
在未知视频的分辨率时,保证调整的分辨率与源视频有相同的横纵比。
宽度固定400,高度成比例:
ffmpeg -i input.avi -vf scale=400:400/a
ffmpeg -i input.avi -vf scale=400:-1

相反地,高度固定300,宽度成比例:
ffmpeg -i input.avi -vf scale=-1:300
ffmpeg -i input.avi -vf scale=300*a:300

解码

ffmpeg -i video.mp4 -c:v rawvideo -pix_fmt yuv420p out.yuv
ffmpeg -i video.mp4 -pix_fmt yuv420p out.yuv

音频命令

显示ffmpeg支持的音频原始格式

ffmpeg -formats | grep PCM

使用Audacity播放pcm需要的设定

编码方式: 几位编码
字节序: 大小端、没有尾端
声道数: 几个声道
采样频率:

解码为特定格式的pcm

ffmpeg -i test1.flv -f s16le -acodec pcm_s16le output.raw //-f表示输出文件格式

解码为能播放的wav(wav后缀默认能播放,pcm不能)(wav为对pcm加了头信息)

ffmpeg -i test1.flv output.wav

从视频中采集音频

ffmpeg -i video.avi -f mp3 audio.mp3

播放视频

原始尺寸播放

ffplay -i filepath

指定播放时显示尺寸

ffplay -x 720 -y 576 -i filepath

指定播放窗口的显示标题

ffplay -window_titile titile -i filepath

播放yuv

ffplay -f rawvideo -video_size 720x240 -i inputfile_path

图片

保证原分辨率的情况下,降低图片质量,减少图片大小

ffmpeg -i ‘mmexport1499054133974.jpg’ -vf thumbnail,scale=358:441 -frames:v 1 ‘image_location.jpg’
ffmpeg reduce image quality, NOT size - Stack Overflow

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值