`

Linux下用ffmpeg轉PSP影片 (MP4/AVC格式)

    博客分类:
  • PSP
阅读更多
http://www.hacken.cc/ss/index.php/144989/viewspace-5136

总的来看过程是这样的: 
1.安装转换所需套件 
2.转换成MP4/AVC格式 
3.把转换好的档案命名为"maqxxxxx.mp4"并放到"ms0:/mp_root/101anv01/"中 

首先我们要用的工具: 
ffmpeg 
還有需要的庫:还有需要的库: 
x264 , faac和faad2 

别想偷懒把所有东东apt-get回来就好, 
因为apt-get回来的ffmpeg并不支援x264和aac,所以无法用来转MP4/AVC 
为使ffmpeg支援aac和x264, 
就必需自己下载ffmpeg的源代码来编译, 


要使ffmpeg支援MP4/AVC格式就得把一些Libraries编进去, 
下载以下源代码并编译: 
faac下载: 
http://sourceforge.net/project/showfiles.php?group_id=704 
编译: 
# ./configure --prefix=/usr/local --enable-shared --with-mp4v2 
# make clean ; make 
# sudo make install 


faad2下载: 
http://sourceforge.net/project/showfiles.php?group_id=704 
编译: 
# ./configure --prefix-/usr/local --enable-shared --with-mp4v2 
# make clean ; make 
# make install 


x264下载(用svn指令,还有就是要先安装yasm才编): 
# sudo apt-get install yasm 
# svn co svn://svn.videolan.org/x264/trunk x264 
编译: 
# ./configure --prefix=/usr/local --enable-shared 
# make clean ; make 
# sudo make install 


.这时你已经安装好转MP4/AVC所需的Libraries了先旨声明,以上这三个只是"只针对转MP4/AVC而所需的Libraries". 
而ffmpeg还可以编码很多其他格式想要支持其他格式(如转mp3等)就请自己下载所需的Libraries, 
我把常用的格式和所需的Libraries整理成下表. 
(以下套件只要下回来就"./configure"时只要加上" --enable-shared"选项,再make && make install就可以了,没难度) 

套件名 
mp3 
lame
使之支援mp3編碼使之支援mp3编码 
amr-nb libamrnb 
gp的声音部分会用到 
amr-wb libamrwb 

AC3 liba52 杜比环回立体声使用的编码,对DVD编码时或许会用到 
Xvid xvidcore 要把影片压成Xvid就一定要这个,这个编译时不用--enable-shared 
#apt-get install libvorbis libvorbis-devel libogg libogg-devel 
这堆麻烦东西apt-get安装就好了 

PS:个人觉得xvid和mp3特有用,建议安装 


接下来就是编译ffmpeg 
使用svn指令下载ffmpeg: 
# svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg 

首先解压缩不用说进入资料夹后当然就是./configure啦完整命令是这样: 
# ./configure --enable-shared --enable-libfaac --enable-libfaad2 --enable-libx264 --enable-pthreads --disable-ffserver --prefix=/usr/local 

假若你有下载其它库来支援更多功能,可以在上面命令添加"--enable-xxxxxx" 
例如你要把mp3lame编进去,只要加"--enable-libmp3lame"就好了 
PS那个"xxxxx"都以lib开头,xvidcore的是"libxvid",其他按上表的"套件名"一栏键入就ok 

产生Makefile档后,就到最花时间的编译了 
# make clean ; make 
# sudo make install 

用这个: 
# ffmpeg -i "InputFile" -timestamp 00:00:00 -bitexact 1 -vcodec libx264 -bufsize 128 -g 250 -s 480x272 -r 29.97 -b 768k -acodec libfaac -ac 2 -ar 48000 -ab 64 -f psp "OutputFile" 

参数: 
-i :后面接着要转换的档案 
-timestamp :指定时间截 
-bitexact :使用标准比特率 
-vcodec :指定用什么codec来编码影像部分,MP4/AVC=X264+AAC,所以这里选libx264 
-bufsize :设置码率控制缓冲区大小,不懂的,别理它了! 
-g :设置图像组大小,又是很Pro的东西,当看不见就可以了! 
-s :指定影片解析度,要在PSP全萤幕看所以就设480x272 
-r :帧频,一般都会用29.90 
b :影像比特率,768很不错了。除了768外,也可以选:384512,1500,越大画质越好,档案也越大 
-acodec :指定用啥codec来编码声音部分,现在我们转成MP4/AVC所以我们用libfaac 
-ac :声道数,调成2就是立体声,1的话就会是单声道 
-ar :声音采样率,可以用24000或48000,48000音质较好 
-ab :声音码率。 如果上面用了立体声,这里就要设成原来的一半,这个例子中,原来想要设的是128,但由于用了立体声的关系,现在是64。             另外除了128,也可以選:32,48,64,96,越大音質就越好,檔案容量也越大另外除了128,也可以选:32,48,64,96,越大音质就越好,档案容量也越大 
-f :使用啥格式,就选psp吧!~ 

放PSP需要一个.thm的预览图,也可以用ffmpeg来拍下, 
用以下指令: 
# ffmpeg -i "InputFile" -f image2 -ss 2 -vframes 10 -s 160x120 -an "OutputFile.thm" 

参数: 
-i :和上面转片时的用法一样,后面跟要拍的档案 
-f :和上面转片时一样,"-f"是输出的格式,"image2"告诉ffmpeg要输出jpg档,即是要拍照片 
-ss :参数是要拍第多少秒,这里拍第2秒, 
-vframes 10 :要截指定秒数中的第几帧,其实几多都可以,10就可以了(因为第一帧或数值太大可能会拍到黑色画面,10的话一般都OK) 
-s :和上面转片时的用法一样,用来设解析度 
-an :不要声音,很难想像拍下来的图像档会有声音吧...... 

如果你的源影片上下有黑边的,就得先裁掉这些黑边,否则影像会变形。 
以下引用自FFmpeg Documentation : 
'-croptop size' 
Set top crop band size (in pixels). 
'-cropbottom size' 
Set bottom crop band size (in pixels). 

现在你应该明白怎样去边了吧! 
有关ffmpeg的其他用法,请参考FFmpeg Documentation 

分享到:
评论

相关推荐

    linux下安装FFmpeg命令,亲测可用

    以下是对"linux下安装FFmpeg命令,亲测可用"这一主题的详细解释。 1. **FFmpeg简介** FFmpeg是跨平台的音频和视频处理工具,包含了一系列的命令行工具,如ffmpeg、ffplay、ffprobe等,用于编码、解码、转码、合并、...

    静态编译的linux下ffmpeg-3.3.3版本及SDK库

    附件为Centos6.6环境下静态编译的ffmpeg-3.3.3版本linux可执行程序和SDK库,其中包含基本的x264、aac编解码库;还增加字幕渲染(drawtext参数)、水印叠加等功能;configure配置参数为: ./configure --target-os=...

    FFmpeg - Linux下使用ffmpeg硬件cuda解码mp4文件,并加入简单cv处理,sdl渲染窗口

    ■ 本源码运行环境为FFmpeg+SDL+OpenCV,主要功能Linux下使用ffmpeg硬件cuda解码mp4,并加入简单cv处理,sdl渲染窗口 ■ 本源码对应的文章介绍:https://blog.csdn.net/automoblie0/article/details/124303680 ■ ...

    ffmpeg将png/jpg图片序列转成mp4/avi

    本篇文章将详细介绍如何使用`ffmpeg`和C++编程语言将一系列的PNG或JPG图片序列合成为MP4或AVI格式的视频。 首先,我们需要了解`ffmpeg`的基本原理。`ffmpeg`是一个跨平台的命令行工具,可以用于转换、合并、分割、...

    linux下编译ffmpeg

    FFMpeg 在 Linux 下的编译和使用 FFMpeg 是一个功能强大且广泛使用的开源多媒体处理框架,它可以对多种格式的音频和视频文件进行处理,包括编码、解码、转换、流媒体等。今天,我们将介绍如何在 Linux 操作系统下...

    Linux下使用ffmpeg录屏代码

    让我们深入了解一下如何在Linux环境下使用`ffmpeg`进行录屏以及C++与`ffmpeg`的结合。 首先,`ffmpeg`是一个跨平台的解决方案,支持多种格式的音频和视频编码解码。它的功能包括采集、转换、剪辑、流媒体等。在录屏...

    ffmpeg安装.zip

    redhat安装ffmpeg所有安装包 /usr/local/ffmpeg/ffmpeg-3.2.4/libavdevice /usr/local/ffmpeg/ffmpeg-3.2.4/libavfilter /usr/local/ffmpeg/ffmpeg-3.2.4/libavformat /usr/local/ffmpeg/ffmpeg-3.2.4/...

    linux上使用ffmpeg 实现视频截图

    在Linux环境中,利用Java调用FFmpeg命令进行视频截图是一项常见的任务,特别是在多媒体处理和视频分析的项目中。FFmpeg是一款强大的开源工具,它提供了多种音视频处理功能,包括编码、解码、转换、流处理等。在这个...

    基于ffmpeg将avi视频转换为mp4视频

    在本教程中,我们将深入探讨如何使用FFmpeg将AVI视频格式转换为MP4格式。 1. **FFmpeg简介** FFmpeg是一个命令行工具,其核心是libavcodec(编解码库)、libavformat(容器处理库)和libavfilter(滤镜系统)。它...

    将rtmp流保存成MP4或者flv格式视频(参考资料包括:librtmp实现flv,ffmpeg实现MP4和mp4v2实现MP4)

    使用ffmpeg,我们可以从RTMP流中捕获数据并直接将其保存为MP4、TS、MKV或FLV等多种格式的视频文件。例如,命令行`ffmpeg -i rtmp://server/app/stream -c copy output.mp4`即可将RTMP流转存为MP4文件。ffmpeg的强大...

    Linux下使用FFmpeg录屏代码.rar

    本资源"Linux下使用FFmpeg录屏代码.rar"包含了一个利用FFmpeg在Linux系统上进行屏幕录制的示例项目。通过解压文件,我们可以看到一个名为"screen-recorder-ffmpeg-cpp-master"的文件夹,这很可能是用C++编写的FFmpeg...

    使用ffmpeg 将avi 文件转换为MP4 不进行编解码工作,只做封装格式转换

    本程序是在ffmpeg给的demo :remuxing.c的基础上修改而来。因为原来的demo在转换avi到MP4时只能转换不包含音频流的avi文件,在转换包含音频流的avi文件时会报错。...现阶段先这样下一步计划好好学学ffmpeg。

    ffmpeg H264 转为MP4

    ### ffmpeg将H264编码的RTSP实时流转换为MP4或AVI格式 在数字视频处理领域,ffmpeg是一款非常强大的开源工具包,能够帮助用户实现多种视频、音频文件的转换、剪辑等操作。本文主要介绍如何利用ffmpeg将采用H264编码...

    Linux下编译ffmpeg的wasm库

    在Linux环境下编译FFmpeg的WebAssembly库是一个技术性较强的过程,主要涉及到FFmpeg的源码编译和WebAssembly的交叉编译。FFmpeg是一个强大的开源多媒体处理框架,广泛用于音视频的编码、解码、转码等任务。而...

    c++使用ffmpeg把h264/h265和mp3写入mp4文件

    本主题聚焦于如何使用C++与FFmpeg库来将H264、H265编码的视频流和MP3音频流合并并写入到MP4文件中。H264和H265是两种高效的视频编码标准,而MP3是一种广泛接受的音频编码格式。MP4文件格式则允许同时存储视频和音频...

    Linux下FFmpeg的安装包

    安装完成后,FFmpeg的命令行工具就可以在全局路径下使用了。你可以通过`ffmpeg -version`来检查安装是否成功。 需要注意的是,由于FFmpeg的版本不断更新,新版本可能会包含更多的特性和支持。因此,建议定期更新...

    ffmpeg转换MP4为JPG帧图片

    在本场景中,我们将关注如何使用FFmpeg将MP4视频文件转换为一系列JPG格式的图片帧。 首先,我们需要了解FFmpeg的基本命令结构。FFmpeg的命令行工具通常以以下形式运行: ``` ffmpeg [options] -i input_file ...

    Linux下安装ffmpeg库

    ### Linux下安装ffmpeg库 #### 知识点一:FFmpeg简介及用途 - **FFmpeg**是一款强大的跨平台音视频处理工具集,能够进行音视频的编码、解码、转码、复用、解复用、流媒体传输、滤镜处理等功能。 - 它包含了一系列...

    在linux上通过ffmpeg+faac库把pcm格式音频转换成aac格式音频

    在linux上通过ffmpeg+faac库把pcm格式音频转换成aac格式音频-On linux through ffmpeg+faac library to convert pcm format audio aac format audio

    ffmpeg封装H246为MP4

    在本文中,我们将详细讨论如何使用FFmpeg将H264编码的视频流封装到MP4容器中,这是一项常见的任务,特别是在处理网络视频流或进行多媒体文件格式转换时。 首先,理解H264和MP4是非常必要的。H264,也称为AVC...

Global site tag (gtag.js) - Google Analytics