FFmpeg是Ubuntu下强大的视频、音频编解码工具。 x264可以编码出高质量的h.264视频,iPad必须要h.264编码或mpeg-4编码的视频才能正常播放。Ubuntu官方源默认是不提供h.264编码的,这就需要我们手工编译安装FFmpeg的h.264支持,使之能够编码出MP4文件。
继上文Ubuntu安装FFmpeg编码出MP4文件的方法之后,本文接着介绍Ubuntu系统下如何转换mp4与x264和h.264。
flv视频转换为MP4视频:
- ffmpeg -i source.flv -f avi -vcodec mpeg4 output.MP4
合并视频文件
- ffmpeg -i /tmp/a.wav -s 640x480 -i /tmp/a.yuv /tmp/a.mpg
或用mencoder合并视频文件:
- mencoder -oac copy -ovc copy -idx -o output.avi video1.avi video2.avi video3.avi
截取一张352×240尺寸大小的,格式为jpg的图片:
- ffmpeg -i source.avi -y -f image2 -t 0.001 -s 352x240 output.jpg
把视频的前11帧转换成一个动画图片(Animated Gif):
- ffmpeg -i source.avi -vframes 11 -y -f gif output.gif
在视频的第8.01秒处截取 352*240 的缩略图:
- ffmpeg -i source.avi -y -f image2 -ss 08.010 -t 0.001 -s 352x240 output.jpg
转换 yuv 文件
- ffmpeg -s cif -vcodec mpeg4 -i paris.yuv paris.avi
说明:
-s 指定帧大小 cif 为 352x288,qcif 为 176x144,4cif 为 704x576
-vcodec 指定采用的编码器
-i 指定输入文件
输出 raw YUV420P 文件:
ffmpeg -i paris.avi paris0.yuv
将一段视频输出为图片序列
- ffmpeg -i 1.avi cat%d.png -vcodec png
说明:
- -vcodec mjpeg
- -vcodec ppm
- ffmpeg -i 1.avi cat%04d.jpg -vcodec mjpeg -ss 0:1:2 -t 0:0:1
说明:将1.avi视频 1分02秒 处开始,持续1秒长的视频输出为jpg的序列
- ffmpeg -vcodec mjpeg -i 1.flv test%02d.jpg -ss 0:0:2 -t 0.001
说明: -t 表示持续时间为0.001秒,这个命令相当于截取开始2秒处的一幅jpeg的图片
多输入单输出
- ffmpeg -i /tmp/a.wav -s 640x480 -i /tmp/a.yuv /tmp/a.mpg
单输入多输出
- ffmpeg -i /tmp/a.wav -ab 64 /tmp/a.mp2 -ab 128 /tmp/b.mp2 -map 0:0 -map 0:0
说明:-map file:stream_index 指定哪一个输入流用于输出流,顺序对应
DVD 转 mpeg4
- ffmpeg -i snatch_1.vob -f avi -vcodec mpeg4 -b 800 -g 300 -bf 2 -acodec mp2 -ab 128 snatch.avi
说明:
压制高品质MP4的参考参数:
- '-mbd rd -flags +4mv+trell+aic -cmp 2 -subcmp 2 -g 300 -pass 1/2'
可以试试: '-bf 2', '-flags qprd', '-flags mv0', '-flags skiprd'
编码 mpeg1/mpeg2
- ffmpeg -i 1.avi -vcodec mpeg2video 2.mpg
说明:
注意mpeg2的codec为 mpeg2video
其他codec可以使用 ffmpeg -formats 查看
压制高品质mp1/mp2的参考参数:
- '-mbd rd -flags +trell -cmp 2 -subcmp 2 -g 100 -pass 1/2'
注意,加 '-g 100' 可能会使某些解码器没法解码
可以试试: '-bf 2', '-flags qprd', '-flags mv0', '-flags skiprd'
编码为 flv
- ffmpeg -i 1.avi -ab 56 -ar 22050 -b 500 -r 15 1.flv
X 屏幕录像
FFmpeg 捕获 X11 的显示内容:
ffmpeg -f x11grab -i :0.0 /tmp/out.mpg
说明:
0.0 是 X11 服务器 display.screen 格式的编号 , 可从环境变量的设置中获取。
ffmpeg -f x11grab -i :0.0+10,20 /tmp/out.mpg
说明:
0.0 是 X11 服务器 display.screen 格式的编号 , 可从环境变量的设置中获取。
10 、 20 分别是捕获窗口的x、y偏移量。
音视频采集
- ffmpeg -f audio_device -i /dev/dsp -f video4linux2 -i /dev/video0 /tmp/out.mpg
说明:使用FFmpeg捕获前视频源必须有效激活 。
FFmpeg截图参数
- ffmpeg -i xxx.xxx -y -f image2 -ss 8 -t 0.001 -s 350x240 xxx.jpg
FFmpeg 加水印 参数:
- ffmpeg -i inputfile.xxx -tagpict ":220:210" -ab 56 -ar 22050 -qmin 2 -qmax 16 -b 320k -r 15 -s 320x240 outputfile.flv
水印参数说明:
-tagpict ":220:210"
(在ffmpeg所在目录中寻找0002.mjpg、mask.mjpg两个用作水印处理的图片文件,然后在指定的坐标,比如此处的:220:210,把水印在转码过程中添加到视频文件的每一桢上)
- ffmpeg -i input.wmv -vhook 'vhook_path/watermark.so -f logo.png -x -10 -y -10 -w 4 -h 4' output.mpg
- ffmpeg -i input.flv -vhook '/usr/lib/vhook/watermark.so -f
- logo.gif -m 0 -t ffffff' -ab 96 -b 8000k output.flv
AviSynth加水印:
首先ffmpeg/Mencoder编译时需要–enable-avisynth;
转换参数:ffmpeg -y -i 1.avs -b 320k rmvb-avs.flv
avs编写格式:
- video = DirectShowSource("rmvb.rmvb",15).BilinearResize(320,240)
- logo = ImageSource("logo2.jpg")
- logomask = ImageSource("mask2.jpg")
- overlay(video,logo,mask=logomask)
常用选项
-i filename 输入文件
-f fmt 强迫采用格式fmt
-y 覆盖输出文件
-ss position 搜索到指定的时间处开始 [-]hh:mm:ss[.xxx]的格式也支持
-b bitrate 设置比特率,缺省200kb/s
-r fps 设置帧频 缺省25
-s size 设置帧大小 格式为WXH 缺省160X128.下面的简写也可以直接使用:
sqcif 128X96 qcif 176X144 cif 352X288 4cif 704X576
-vcodec codec 强制使用codec编解码方式。 如果用copy表示原始编解码数据必须被拷贝。
-sameq 使用同样视频质量作为源(VBR)
-g gop_size 设置图像组大小
-intra 仅适用帧内编码
-bf frames 使用frames B 帧,支持mpeg1,mpeg2,mpeg4
-ab bitrate 设置音频码率
-ar freq 设置音频采样率
-ac channels 设置通道 缺省为1
-an 不使能音频纪录
-acodec codec 使用codec编解码
-benchmark 为基准测试加入时间
-hex 倾倒每一个输入包
总结:
希望本文介绍的Ubuntu转换mp4与x264和h.264的方法能够对读者有所帮助,更多有关linux系统的知识还有待于读者去探索和学习。
相关推荐
在Ubuntu操作系统中,批量转换视频文件至H.264编码的MP4格式是一个常见的需求,特别是对于那些希望节省存储空间、提高视频流媒体播放兼容性的用户。H.264编码技术因其高效的数据压缩能力而受到广泛欢迎,它可以在...
完成以上步骤后,你将拥有一个内置了x265和x264的FFmpeg,可以直接使用`ffmpeg -i input.mp4 -c:v libx265 output.mkv`命令进行HEVC编码,或者使用`ffmpeg -i input.mp4 -c:v libx264 output.mp4`进行H.264编码。...
ffmpeg -i input.mp4 -vf "drawtext=text='Hello World': fontfile=/path/to/font.ttf: x=(w-tw)/2: y=(h-th)/2: fontcolor=white: fontsize=24" output.mp4 ``` 6. **自定义编译FFmpeg** 如果需要安装最新版或...
3. x264:这是一个高效的H.264视频编码器,广泛应用于视频编码和转换,因其出色的编码质量和速度而闻名。 要将这些组件集成到FFmpeg中,我们首先需要获取它们的源代码。在提供的压缩包中,我们看到有`lame-3.99.5....
HEVC是继H.264之后的下一代视频编码标准,其压缩效率显著提高,可以实现与H.264相同质量的视频,但文件大小减少大约50%。x265是第一个实现HEVC标准的开源编码器,由MulticoreWare公司开发并维护,广泛应用于视频编码...
实现 实时的 H264 + AAC 编码 音频和视频的 RTSP, RTMP协议推流, 以及保存到本地MP4,MKV录像文件。 如果要成功编译, 需要下载和编译ffmpeg库,libfdk-aac库,x264库。 编译这些库,非常耗时。如果懒得去编译, ...
FFmpeg 支持大量的音频和视频编码格式,如 H.264、H.265、VP9(视频)和 AAC、Opus、Vorbis(音频)。它还包含许多滤镜,允许用户进行色彩校正、图像处理、转场效果等高级编辑工作。 在 Ubuntu 上安装 FFmpeg4.0.6...
视频编码器:H.264(x264),H.265(x265)MPEG-4和MPEG-2(libav),VP8(libvpx)和Theora(libtheora) 音频编码器:AAC,CoreAudio AAC / HE-AAC(仅OS X),MP3,Flac,AC3或Vorbis 音频直通:AC-3,DTS,...
- `-vcodec libx264`:选择H.264编码器进行视频编码。 - `-threads 4`:指定编码时使用的线程数,可根据硬件性能调整。 - `$HOME/output.avi`:指定输出文件路径及格式,可更改为其他格式如flv、mp4等。 要停止录制...
如:`ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4`将视频转换为H.264编码的MP4格式。 2. **裁剪与缩放**:`-ss`设定开始时间,`-t`设定持续时间,`-s`设置输出尺寸。例如:`ffmpeg -i input.mp4 -ss 00:...
这里,`x264enc`是对视频流进行H.264编码的插件,`mp4mux`是将编码后的数据打包成MP4容器的插件,`filesink`则将结果写入指定的文件。 在嵌入式设备上,可能需要通过串口通信与用户交互。这通常涉及到编写一个应用...
- `-vcodec libx264`:选择H.264编码器,用于压缩视频。 - `-threads 4`:设置编码线程数,可根据CPU核心数进行调整。 - `$HOME/output.avi`:指定输出文件路径和名称,可以更改为其他格式,如`.flv`, `.mp4`, `.wmv...
- **libx264**: H.264视频编码器,高质量的视频压缩。 - **libvpx**: VP8/VP9视频编码器,适用于WebM格式。 - **libfdk-aac**: 由Fraunhofer IIS开发的AAC音频编码器,提供高质量的音频编码。 - **libopus**: ...
这个命令会将视频源从USB摄像头读取,转换为YUV420P格式,使用libx264编码器进行H.264编码,设置为实时模式(`zerolatency`),并将视频流显示在X11窗口系统上。 如果你想要将视频保存到本地,可以修改命令,将输出...
Darwin Streaming Server(DSS)是Apple开发的一款流媒体服务器软件,它可以用来分发H.264视频和AAC音频流。DSS 6.0.3版本提供了强大的功能和稳定性,适用于多种应用场景。本文将详细介绍在Linux环境下安装Darwin ...
在本案例中,我们将在Ubuntu 16.04环境下编译FFmpeg 2020版本,并将其与Qt 5.12集成,使用Android NDK r21进行交叉编译。 首先,确保你已安装了必要的工具和依赖,包括Git、CMake、GCC、G++、NDK以及Qt 5.12开发...
cropped_image = image[y:y+h, x:x+w] ``` 以上介绍了如何安装配置 OpenCV 以及如何进行基础的图像和视频处理。这些技术是计算机视觉领域中的基础部分,对于初学者来说非常重要。掌握这些技能将有助于进一步深入...
例如,`-c:v libx264` 用于指定H.264视频编码器。 - `-b:v`:设置视频比特率。例如,`-b:v 1M` 设置视频比特率为1Mbps。 - `-vf`:添加视频过滤器。例如,`-vf scale=w=640:h=480` 可以将视频尺寸调整为640x480。 - ...
您将需要ffmpeg安装对libx264和aac编解码器支持。 在带有 Homebrew 的 Mac OS X 上,运行brew install ffmpeg ,在 Ubuntu 上运行sudo apt-get install ffmpeg 。 如果您使用的是 Anaconda,您还可以执行conda ...