- # ffmpeg -i "冰雪奇缘BD双语双字.mkv"
-
ffmpeg -i "冰雪奇缘BD双语双字.mkv"
ffmpeg version 3.4.2-2 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 7 (Ubuntu 7.3.0-16ubuntu2)
configuration: --prefix=/usr --extra-version=2 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
libavutil 55. 78.100 / 55. 78.100
libavcodec 57.107.100 / 57.107.100
libavformat 57. 83.100 / 57. 83.100
libavdevice 57. 10.100 / 57. 10.100
libavfilter 6.107.100 / 6.107.100
libavresample 3. 7. 0 / 3. 7. 0
libswscale 4. 8.100 / 4. 8.100
libswresample 2. 9.100 / 2. 9.100
libpostproc 54. 7.100 / 54. 7.100
Input #0, matroska,webm, from \'冰雪奇缘BD双语双字.mkv\':
Metadata:
encoder : libebml v1.3.0 + libmatroska v1.4.0
creation_time : 2014-03-03T11:32:36.000000Z
Duration: 01:42:13.06, start: 0.000000, bitrate: 2691 kb/s
Stream #0:0: Video: h264 (High), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
Stream #0:1(eng): Audio: ac3, 48000 Hz, stereo, fltp, 448 kb/s (default)
Metadata:
title : 英语
Stream #0:2(chi): Audio: ac3, 48000 Hz, stereo, fltp, 448 kb/s
Metadata:
title : 国语
- ffmpeg -i 冰雪奇缘BD双语双字.mkv -map 0:1 -b:a 64k -f mp3 -vn a.1.mp3
- ffmpeg -i 冰雪奇缘BD双语双字.mkv -map 0:2 -b:a 64k -f mp3 -vn a.2.mp3
顺时针旋转画面90度
ffmpeg -i test.mp4 -vf "transpose=1" out.mp4
逆时针旋转画面90度
ffmpeg -i test.mp4 -vf "transpose=2" out.mp4
顺时针旋转画面90度再水平翻转
ffmpeg -i test.mp4 -vf "transpose=3" out.mp4
逆时针旋转画面90度水平翻转
ffmpeg -i test.mp4 -vf "transpose=0" out.mp4
水平翻转视频画面
ffmpeg -i test.mp4 -vf hflip out.mp4
垂直翻转视频画面
ffmpeg -i test.mp4 -vf vflip out.mp4
###########################视频切割
1. 导言
ffmepg剪切视频,很方便,但是也有很大缺陷:
(1)剪切时间点不精确
(2)有时剪切的视频开头有黑屏
造成这些问题的原因是ffmpeg无法seek到非关键帧上。
一下本文通过一些参数配置尽可能地减轻以上问题
2. 基本剪切方法
ffmpeg -i test.mp4 -ss 10 -t 15 -codec copy cut.mp4
- 1
参数分析:
-i : source
-ss:start time
-t :duration
-c :video,audio codec
时间格式:
- x秒
- HOURS:MM:SS.MICROSECONDS
可以设置输出视频的编码格式
-vcodec xxx
-acodec xxx
把-ss, -t参数放在-i参数之后,是对输出文件执行的seek操作
输入文件会逐帧解码,直到-ss设置的时间点为止,这么操作会很慢,虽然时间点是准确的,但是很容易出现黑屏问题。
3. 参数优化
(1)将-ss, -t 参数放在-i参数之前
ffmpeg -ss 10 -t 15 -i test.mp4 -codec copy cut.mp4
- 1
对输入文件执行seek操作,会seek到-ss设置的时间点前面的关键帧上。
时间不精确,但是不会出现黑屏
(2)accurate_seek
剪切时间更加精确
ffmpeg -ss 10 -t 15 -accurate_seek -i test.mp4 -codec copy cut.mp4
- 1
PS:accurate_seek必须放在-i参数之前
(3)avoid_negative_ts
如果编码格式采用的copy 最好加上 -avoid_negative_ts 1参数
ffmpeg -ss 10 -t 15 -accurate_seek -i test.mp4 -codec copy -avoid_negative_ts 1 cut.mp4
- 1
4. 参考文献
ffmpeg -i S1E01_踏水坑.avi -r 1 -ss 00:00:00 -t 20 %03d.jpg
意思是给 ffmpeg 输入一个叫 S1E01_踏水坑.avi 的文件,让它以每秒一帧的速度,从第0秒开始一直截取 20 秒长的时间,截取到的每一幅图像,都用 3 位数字自动生成从小到大的文件名。
####################
合并视频的一种方法
ffmpeg -f concat -i merge_list.txt -c copy output.mp4
其中merge_list.txt格式:
file \'file1.mp4\'
file \'file2.mp4\'
.
file \'filen.mp4\'