<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>服务器安全维护工作室 &#187; 使用 ffmpeg 缩放</title>
	<atom:link href="https://www.fuwuqiok.com/tag/%e4%bd%bf%e7%94%a8-ffmpeg-%e7%bc%a9%e6%94%be/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.fuwuqiok.com</link>
	<description></description>
	<lastBuildDate>Sun, 01 Mar 2020 07:28:40 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.2.26</generator>
	<item>
		<title>使用 ffmpeg 缩放、裁剪、剪辑视频</title>
		<link>https://www.fuwuqiok.com/%e4%bd%bf%e7%94%a8-ffmpeg-%e7%bc%a9%e6%94%be%e3%80%81%e8%a3%81%e5%89%aa%e3%80%81%e5%89%aa%e8%be%91%e8%a7%86%e9%a2%91/</link>
		<comments>https://www.fuwuqiok.com/%e4%bd%bf%e7%94%a8-ffmpeg-%e7%bc%a9%e6%94%be%e3%80%81%e8%a3%81%e5%89%aa%e3%80%81%e5%89%aa%e8%be%91%e8%a7%86%e9%a2%91/#comments</comments>
		<pubDate>Tue, 01 Dec 2015 14:09:01 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[服务器迁移]]></category>
		<category><![CDATA[使用 ffmpeg 缩放]]></category>
		<category><![CDATA[剪辑视频]]></category>
		<category><![CDATA[裁剪]]></category>

		<guid isPermaLink="false">https://www.fuwuqiok.com/?p=2782</guid>
		<description><![CDATA[<p>我们平时使用手机拍摄的视频一般都在1080p及以上，在实际应用中，比如共享给朋友等，可能需要处理一下会比较方便 [&#8230;]</p>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e4%bd%bf%e7%94%a8-ffmpeg-%e7%bc%a9%e6%94%be%e3%80%81%e8%a3%81%e5%89%aa%e3%80%81%e5%89%aa%e8%be%91%e8%a7%86%e9%a2%91/">使用 ffmpeg 缩放、裁剪、剪辑视频</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></description>
				<content:encoded><![CDATA[<div class="entry-content">
<p>我们平时使用手机拍摄的视频一般都在1080p及以上，在实际应用中，比如共享给朋友等，可能需要处理一下会比较方便。下面列出几个 ffmpeg 常用的处理视频方法</p>
<p>（如果只需要格式转换，可以参考如步骤）</p>
<h1 class="entry-title">使用H264编码转换视频</h1>
<p><a href="http://zh.wikipedia.org/zh-cn/H.264">H264（即MPEG4 AVC）</a>是目前 比较流行的视频编码格式，相对MPEG2编码而言，在画质大致相同的情况下能将视频大小再压缩到50%~25%，即如果一个MPEG2（如DVD）视频大 小是1GB，用H264编码能缩小到250MB左右。另外H264编码的视频还能直接在浏览器（如Chrome）和移动设备（如iPhone、 Android手机）上直接播放。<br />
如果你有一堆家庭视频（旧款的家用DV一般是MPEG2格式）想刻录到光盘保存，或者有一堆手机不直接支持的格式的视频想在手机上播放，那么用H264编码转换和压缩它们是一个不错的选择。</p>
<p><a href="http://www.mplayerhq.hu/DOCS/HTML/zh_CN/mencoder.html">mencoder</a> 是一个很方便的视频编码程序，它几乎支持所有的视频格式，而且参数丰富、速度快。</p>
<p>首选你需要安装 mencoder 程序（下面分别是 Archlinux, Fedora, Ubuntu下的安装方式）：</p>
<pre lang="bash">$ sudo pacman -S memcoder
$ sudo yum install mencoder
$ sudo apt-get install mencoder</pre>
<p>然后就可以查看你当前系统支持哪些视频和音频编码器，以及支持哪些封装格式了：</p>
<pre lang="bash">$ mencoder -ovc help
$ mencoder -oac help
$ mencoder -of help</pre>
<p>如果看到有x264视频编码器、有mp3lame音频编码器、以及有mp4封装格式，那么就可以开始下面的编码转换了，否则你可能需要安装相应的音频和视频编码器，一般安装 ffmpeg 组件就会同时附带这些编码器。</p>
<p>压缩一段MPEG2视频：</p>
<pre lang="bash">$ mencoder m001.mpg -o m001.mp4 -oac mp3lame -ovc x264 -of lavf -vf lavcdeint</pre>
<p>上面命令中的 m001.mpg 和 m001.mp4 分别是输入和输出文件名，-oac 用于指定音频编码器，-ovc 指定视频编码器， -of 指定输出文件封装方式，lavf表示输出文件封装方式由输出的文件名（的扩展名）决定（比如m001.mp4表示用mp4封装，m001.avi表示用 avi封装），最后 -vf lavcdeint 参数用于去除视频中的拉丝条纹（锯齿纹），如果没有的话不要这个参数也可以。</p>
<p>h264的编码过程比较耗时，比如 AMD 四核2.8G的编码速度大概是 30fps，大概是视频正常播放所需的时间。</p>
<p>如果待编码转换的视频文件很多，则最好写一个批量处理的脚本：</p>
<pre lang="bash">#!/bin/bash
find . -type f ( -name "*.mpg" -o -name "*.mpeg" )|while read line;do
echo $line
mencoder $line -o ${line}.mp4 -oac mp3lame -ovc x264 -of lavf -vf lavcdeint
done</pre>
<p>执行上面的脚本会将当前目录里所有后缀名为“mpg”和“mpeg”的视频编码为H264格式。</p>
<p>最后，除了mencoder之外，还可以使用ffmpeg来编码</p>
<h2>缩小视频</h2>
<p>假设原始视频尺寸是 1080p（即 1920×1080 px，16:9），使用下面命令可以缩小到 480p：</p>
<pre lang="bash">$ ffmpeg -i a.mov -vf scale=853:480 -acodec aac -vcodec h264 out.mp4</pre>
<p>各个参数的含义：</p>
<ul>
<li>-i a.mov 指定待处理视频的文件名</li>
<li>-vf scale=853:480 vf 参数用于指定视频滤镜，其中 scale 表示缩放，后面的数字表示缩放至 853×480 px，其中的 853px 是计算而得，因为原始视频的宽高比为 16:9，所以为了让目标视频的高度为 480px，则宽度 = 480 x 9 / 16 = 853</li>
<li>-acodec aac 指定音频使用 aac 编码。注：因为 ffmpeg 的内置 aac 编码目前（写这篇文章时）还是试验阶段，故会提示添加参数 “-strict -2” 才能继续，尽管添加即可。又或者使用外部的 libfaac（需要重新编译 ffmpeg）。</li>
<li>-vcodec h264 指定视频使用 h264 编码。注：目前手机一般视频拍摄的格式（封装格式、文件格式）为 mov 或者 mp4，这两者的音频编码都是 aac，视频都是 h264。</li>
<li>out.mp4 指定输出文件名</li>
</ul>
<p>上面的参数 scale=853:480 当中的宽度和高度实际应用场景中通常只需指定一个，比如指定高度为 480 或者 720，至于宽度则可以传入 “-1” 表示由原始视频的宽高比自动计算而得。即参数可以写为：scale=-1:480，当然也可以 scale=480:-1</p>
<h2> 裁剪视频</h2>
<p>有时可能只需要视频的正中一块，而两头的内容不需要，这时可以对视频进行裁剪（crop），比如有一个竖向的视频 1080 x 1920，如果指向保留中间 1080×1080 部分，可以使用下面的命令：</p>
<pre lang="bash">$ ffmpeg -i a.mov -strict -2 -vf crop=1080:1080:0:420 out.mp4</pre>
<p>其中的 crop=1080:1080:0:420 才裁剪参数，具体含义是 crop=width:height:x:y，其中 width 和 height 表示裁剪后的尺寸，x:y 表示裁剪区域的左上角坐标。比如当前这个示例，我们只需要保留竖向视频的中间部分，所以 x 不用偏移，故传入0，而 y 则需要向下偏移：(1920 – 1080) / 2 = 420</p>
<p>视频缩放和裁剪是可以同时进行的，如下命令则为将视频缩小至 853×480，然后裁剪保留横向中间部分：</p>
<pre lang="bash">$ ffmpeg -i IMG_4940.MOV -strict -2 -vf scale=853:480,crop=480:480:186:0 out.mp4</pre>
<h2>剪辑视频</h2>
<p>如果有一段很长的视频只需保留其中的一段，可以使用下面命令对视频进行剪辑。</p>
<pre lang="bash">$ ffmpeg -i a.mov -ss 00:00:21 -t 00:00:10 -acodec aac -vcodec h264 -strict -2 out.mp4</pre>
<p>其中 -ss 00:00:21 表示开始剪辑的位置（时间点），-t 00:00:10 表示剪辑的长度，即 10 秒钟。</p>
<p>当然一段视频是可以在一个命令里同时进行剪辑、缩放、裁剪的，只需把相关的参数合在一起即可。</p>
</div>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e4%bd%bf%e7%94%a8-ffmpeg-%e7%bc%a9%e6%94%be%e3%80%81%e8%a3%81%e5%89%aa%e3%80%81%e5%89%aa%e8%be%91%e8%a7%86%e9%a2%91/">使用 ffmpeg 缩放、裁剪、剪辑视频</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></content:encoded>
			<wfw:commentRss>https://www.fuwuqiok.com/%e4%bd%bf%e7%94%a8-ffmpeg-%e7%bc%a9%e6%94%be%e3%80%81%e8%a3%81%e5%89%aa%e3%80%81%e5%89%aa%e8%be%91%e8%a7%86%e9%a2%91/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
