Linux命令:mp4转码详解 (linuxmp4转码命令)

在日常生活中,我们常常会遇到需要将mp4视频格式转换为其他格式的情况,比如转换成AVI或者WMV。在Linux系统中,有许多优秀的转码工具,其中最出色的是FFmpeg工具。本文将详细介绍如何使用FFmpeg工具来对mp4视频进行转码,并提供一些实用的命令行参数。

安装FFmpeg

您需要安装FFmpeg工具。在大多数Linux系统中,FFmpeg都可以通过包管理器轻松安装。比如在Debian/Ubuntu系统中,您可以使用以下命令进行安装:

“`

sudo apt-get install ffmpeg

“`

一旦您安装了FFmpeg,您就可以根据您的需要开始使用它了。

基本的mp4转码

下面是一个简单的mp4转码的示例。假设您有一个名为input.mp4的文件,您可以使用以下命令将其转换为output.avi:

“`

ffmpeg -i input.mp4 -c:v mpeg4 -c:a copy output.avi

“`

在这个命令中,我们指定了输入文件input.mp4和输出文件output.avi。由于我们将mp4转换为AVI,因此我们需要指定-c:v选项,它表示我们使用了哪个视频编解码器(mpeg4)。’-c:a copy’表示对音频不进行编码,直接拷贝。

还有一些其他的图像编解码器也可以使用。比如,如果您需要将mp4转换为WMV格式,可以使用以下命令:

“`

ffmpeg -i input.mp4 -c:v wmv2 -c:a wmav2 output.wmv

“`

在这个命令中,我们使用了-WMV2编解码器,也同时使用了音频编码-Wmav2。

改变分辨率和比特率

FFmpeg还支持改变视频的分辨率和比特率。这对于那些需要将视频转换为更低分辨率或更小比特率以适应特定设备或网络速度的人非常有用。

例如,以下命令将分辨率从1920×1080更改为1280×720:

“`

ffmpeg -i input.mp4 -s 1280×720 output.mp4

“`

这里,“-s”选项表示输出视频的分辨率。同样,您可以使用以下命令更改比特率:

“`

ffmpeg -i input.mp4 -b:v 1M output.mp4

“`

‘b:v’选项指定输出视频的比特率。在这个例子中,我们将比特率设置为1Mb/s。

使用预设

FFmpeg还提供了一些预设,可以方便地为特定用途而定制编码。您可以使用命令“xfreerdp -listencodings”查看可用的预设列表。例如,以下命令可以使用libswift编解码器将mp4转换为Apple设备的优化格式:

“`

ffmpeg -i input.mp4 -c:v libswift -c:a copy -profile:v mn -level:v 3.1 -pix_fmt yuv420p -movflags +faststart output.mp4

“`

‘-profile:v mn’和’-level:v 3.1’设置了输出视频的profile和级别。’-pix_fmt yuv420p’表示使用YUV颜色空间。’-movflags +faststart’指定在编码时将MP4文件的元数据放在前面,从而提升视频在线流的播放效果。

本文介绍了使用FFmpeg工具来对mp4视频进行转码的基本知识,在正式开始转码之前,务必要确保您已经安装好了FFmpeg。同时,我们还介绍了一些实用的命令行参数,比如改变分辨率和比特率,以及使用预设自定义编码器等。希望这些技巧能帮助您在Linux系统中更好地进行视频转码。

相关问题拓展阅读:

如何为一个直播流配置转码功能

对硬件和驱动的要求

Wowza Transcoder 只能在64位的Windows和Linux系磨空统上运行。此外也不支持Mac OS X

系统。

Wowza Transcoder在64位的Windows Server 上运行时, 系统必须先具备以下功能:

  .NET Framework 3.5.1

  Desktop Experience

硬件加速

Wowza Transcoder

支持Windows 和 LinuxIntel系统上的Quick Sync 和 NVIDIA NVENC 加速编码以及Windows系统上的NVIDIA CUDA

加速编码。 下面的文章介绍了关于这些技术的更多硬件要求:

  Server

specifications for Intel Quick Sync acceleration

  Intel

Quick Sync acceleration on Linux

  Server

specifications for NVIDIA NVENC and NVIDIA CUDA acceleration

  NVIDIA

NVENC accelerated encoding on Linux

  注意:

  你应该在尝试硬件加速转码技术之前,先使用默认的MainConcept软件转码技术。MainConcept软件使用任何硬件加速功能。关于如何调试硬件编码的更多信息,请阅读如何验证Wowza

Transcoder正在使用哪一种编码技术。

  在较新版本的Windows系统上,当Wowza Media Server作为系统服务瞎迹瞎运行时,由于Session 0

Isolation的安全原因,Intel Quick Sync 和 NVIDIA CUDA

硬件加速功能可能无法使用。要了解更多关于如何解决这个问题,请阅读作为Windows系统服务运行时,Transcoder插件如何使用硬件加速功能。

  当使用Windows远程桌面时, Quick Sync 加速可能无法使用。

  支持的音视频编码格式

为了将输入流(被称作”channels”)进行转码或转换为多个不同输出码率的输出流,Wowza

Transcoder 插件提供了很多功能,它支持以下音视品编码格式:

输入流:

  视频解码: H.264, MPEG-2, MPEG-4 Part 2

  音频解码: AAC, MP3, MPEG-1 Layer 1/2, Speex, G.711 (μ-law and

A-law)

输出流:

  视频编码: H.264, H.263v2

  音频编码: AAC

  注意:

  对于mp3格式的音频,系统支持以下采样率: 48000, 44100, and 32023

  Instream CEA-608 隐藏字幕(closed caption)可以通过Wowza Transcoder 插件采用Apple HLS

流媒体被传送给基于iOS的终端设备。要了解更多信息,请阅读州唯如何为HLS流媒体配置隐藏字幕(closed captioning)。

  当使用硬件加速特性时,不支持H.263 视频输出。

  关于Transcoder模版

Wowza Transcoder

使用一个模版系统来为输出流创建转码后的输出流,这个模版可以控制各种编码参数。在/transcoder/templates目录下有三个默认的模版文件,基本满足了常规的转码要求:

transrate.xml, transcode.xml, 以及 audioonly.xml。

要了解更多关于个性化的的转码模版,请阅读模版的配置.

Wowza

Transcoder 模版系统提供一个将多个输出流组合在一个逻辑组的方法(被称作 Stream Name

Groups)。可以用ngrp:前缀来引用这个逻辑组以实现码率自适应。

  Server.license 的配置(Wowza Media Server Perpetual Edition)

Wowza Media

Server和增值插件的授权码(license key) (包括Wowza Transcoder

插件)被存储在/conf/Server.license。

  %WMSCONFIG_HOME%\conf\Server.license

  - Windows

  /Library/WowzaMediaServer/conf/Server.license

  - Mac OS X

  /usr/local/WowzaMediaServer/conf/Server.license

  -

Linux/Unix

试用、日租、月租模式的授权只需要一个license key,但是永久授权模式需要多个license

key。

使用增值插件时,用文本编辑器打开Server.license文件,在每一个新行输入一个新的license

key。当服务被重启后,新的license将会生效。

由于多个授权码是叠加的,因此在添加一个新的授权码时,去保留文件中原有的授权码,然后在新的一行填写新的授权码。多个授权码在文件中的前后顺序是无关紧要的。

授权码的前5位和后5位字符将显示在控制台的输出中信息。

下面是一个Server.license

文件的示例,包括一个永久授权的Wowza Media Server 授权码、两个Wowza Transcoder 插件授权码以及一个Wowza nDVR

插件授权码:

  SVRP3-LaGpC-ZrTD9-F4Y3S-a9bR2-h5t3C

TRN23-Ry6qe-4mT8J-yKj2W-4N5sH-2Td3a

TRN13-y9Gj2-kneqT-2zjHp-GadzB-N6fwa

DVRA3-k3r3R-nzxCB-ypjs5-Sk3y9-ahFdF

  Application.xml的配置

建立一个直播应用,然后对Application.xml文件进行一些配置以使用Wowza

Transcoder插件,请按下面进行:

  创建一个应用的目录/applications/live.

  创建一个配置目录/conf/live

,将/conf/Application.xml 文件拷贝到这个新目录下

  用文本编辑器打开这个新拷贝的Application.xml 文件,然后做如下改动(有些设置可能已经配好了):

  将Streams/StreamType 设置为:

  Code:

  live

  将HTTPStreamers 设置为:

  Code:

  cupertinostreaming,oothstreaming,sanjosestreaming

  将Streams/LiveStreamPacketizers 设置为:

  Code:

  cupertinostreamingpacketizer,oothstreamingpacketizer,sanjosestreamingpacketizer

  将RTP/Authentication/PlayMethod 设置为:

  Code:

  none

  将Transcoder/LiveStreamTranscoder 设置为:

  Code:

  transcoder

  如果输入流是H.264视频编码AAC 或 MP3

音频编码,你希望创建多个不同码率的输出流,以实现码率自适应,请将Transcoder/Templates 设置为:

  Code:

  ${SourceStreamName}.xml,transrate.xml

  如果输入流是MPEG-2

或 MPEG-4 Part 2 视频编码,你希望转码为H.264 和 AAC,以面向Wowza支持的例如Adobe

Flash播放器、Apple iOS 设备和Microsoft Silverlight的播放器技术, 请将Transcoder/Templates

设置为:

  Code:

  ${SourceStreamName}.xml,transcode.xml

  注意:

当使用transcode.xml时,同样也支持多码率自适应。

  如果你希望转码的输入流时SHOUTcast 或 Icecast MP3

媒体流,请在MediaCaster/Properties 中添加下面的属性以配置Wowza Media Server

在每个包中发送一个MP3 帧:

  Code:

  

shoutcastMP3GroupCount

Integer

  (只针对基于RTSP/RTP的编码器),用文本编辑器打开/conf/publish.password文件,添加一个用户名和密码来控制对RTSP/RTP

推流的访问。 下面是一个例子,用户名为myuser,密码为mypassword)。

  Code:

  # Publish password file (format )

# username password

myuser mypassword

  启动 Wowza Media Server.

  模版的配置

如果你使用系统自带的transrate.xml 或 transcode.xml 模版文件,

转码后的输出流将使用下面的stream names:

  _360p: Main Profile stream

  _160p: Baseline Profile stream

  ngrp:_all: 面向Apple HTTP Live Streaming (cupertino)、

Microsoft Smooth Streaming以及 Adobe HTTP Dynamic Streaming

(sanjose)的码率自适应

是输入到Wowza Media

Server的输入流。例如,一个输入是myStream,

那么转码后的输出流就是myStream_360p、myStream_160p以及

ngrp:myStream_all。

转码的工作机制很简单。推送到live应用的所有输入流将被采用在/conf//Application.xml文件Transcoder/Templates中设置的转码模版文件中的参数来转码。

你可以根据需要配置多个转码后的输出流。

让我们仔细看以下转码模版中的配置。下面是随Wowza Media

Server安装后自带的transrate.xml模版文件:

  Code:

  

true

source

mp4:${SourceStreamName}_source

PassThru

${SourceVideoBitrate}

PassThru

${SourceAudioBitrate}

false

p

mp4:${SourceStreamName}_720p

H.264

default

fit-height

,0,0,0 –>

,0,320,240 –>

main

求视频转码为MP4格式的具体参数

高清晰的MP4格式,视频编码器选择h264 ,分辨率要设置为640*480,比特率为768,帧速率为25,音频参数选择默认的不会影响清晰度的~

速度快,体积又小的MP4视频转换岩祥软件,建议用更流行的 MP4/RM转换专粗戚搏家

它是专注研发应用于移动设备最久的转换软件。

软件的转换速度明显比其他软件还要快些,对几乎所有视频格式的支持非常好。

并将视频转成手机官方MP4格式,还有高清MP4格式,视频又小又清晰。

视频可以画面质量较清晰,使用简单方便,功能超齐全,容易上手。

百度上搜索仔游 MP4/RM转换专家

  视频分辨率:首先要考虑原来视频分辨率的比例,也就是棚正屏幕比例,不能违背了这一点,否则,转换出来的视频,高宽比例失真,图像失真。具体参数,要看你用在什么媒体上,如链镇悔果是在手机、MP4播放器上播放,宽度320就行了,高度根据你的屏幕换算。如果用在电脑上或者高清电视上,宽度要在720。

  视频比特率:512足够了,低档的手机、旅旁播放器384

  帧速率:标准的25

  音频采样率:标准的44100

  音频比特率:64,如果用在高保真音箱上192

你好,以下设置仅供参考:

1、编码器:H264;

2、分辨率:握悄640*360/854*480;

3、比特率:768kbps;

4、帧速率:24;

6、知厅音频编码器:AAC;搭皮隐

7、采样率:44100;

8、比特率:96或者128kbps。

祝转码顺利。

自己试下各种参数,码率和分辨率都非常的小了···看不清楚了。

关于linuxmp4转码命令的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » Linux命令:mp4转码详解 (linuxmp4转码命令)