ffmpeg转换视频编码
Posted xzh-personal-issue
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ffmpeg转换视频编码相关的知识,希望对你有一定的参考价值。
下载ffmpeg
官网下载压缩包。
关键的是三个exe
使用ffmpeg
cmd进入到三个exe的存放路径下,或者把三个exe的存放路径添加到系统路径。
输入指令ffmpeg -i original_video.mp4 -vf scale=640:360 result_video.mp4 -hide_banner
640*360可以修改成想要的尺寸。
python使用ffmpy
pip3下载pip3 install ffmpy
下载后找不到ffmpy的module的话需要手动添加
import sys
sys.path.append("C:\\\\Users\\\\123\\\\anaconda3\\\\Lib\\\\site-packages")
from ffmpy import FFmpeg
示例代码
import os
import uuid
import sys
sys.path.append("C:\\\\Users\\\\123\\\\anaconda3\\\\Lib\\\\site-packages")
from ffmpy import FFmpeg
# 调整视频大小
def change_size(video_path: str, output_dir: str, width: int, height: int, bit_rate=2000):
ext = os.path.basename(video_path).strip().split(\'.\')[-1]
if ext not in [\'mp4\']:
raise Exception(\'format error\')
_result_path = os.path.join(
output_dir, \'.\'.format(
uuid.uuid1().hex, ext))
ff = FFmpeg(inputs=\'\'.format(video_path): None, outputs=
_result_path: \'-s * -b k\'.format(width, height, bit_rate))
print(ff.cmd)
ff.run()
return _result_path
if __name__ == \'__main__\':
print(change_size(\'C:/Users/123/Desktop/video_20230501_182239.mp4\', \'C:/Users/123/Desktop\', 960, 540))
需要注意ffmpy也会调用ffmpeg,所以上面的3个exe也要放在同一路径或者把存放路径放在系统路径中。
参考链接
如何使用 ffmpeg 对 H.264 中的视频进行编码?
【中文标题】如何使用 ffmpeg 对 H.264 中的视频进行编码?【英文标题】:How to use ffmpeg to encode video in H.264? 【发布时间】:2016-09-01 04:23:48 【问题描述】:我已经从https://github.com/FFmpeg/FFmpeg 安装了 ffmpeg 3.0,我正在尝试将使用 mepeg4 第 2 部分编码的视频转换为 H264,但我得到了Unknown encoder 'libx264'
错误
这是我的命令:(我尝试了 h264、x264、libx264,它们都不起作用)
ffmpeg -i Fashion.divx -acodec aac -vcodec libx264 out.mp4
我查看了支持的编解码器列表
Codecs:
D..... = Decoding supported
.E.... = Encoding supported
..V... = Video codec
..A... = Audio codec
..S... = Subtitle codec
...I.. = Intra frame-only codec
....L. = Lossy compression
.....S = Lossless compression
-------
D.VI.. 012v Uncompressed 4:2:2 10-bit
这里是h264:
D.V.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_vdpau)
我用的是ffmpeg 3.0,从那个列表看,好像不支持h264编码,只支持解码h264吧?
我尝试通过本指南启用 h.264 How to quickly compile FFmpeg with libx264 (x264, H.264)
./configure --enable-gpl --enable-libx264
我明白了 ./configure --enable-gpl --enable-libx264
ERROR: libx264 not found
If you think configure made a mistake, make sure you are using the latest
version from Git. If the latest version fails, report the problem to the
ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file "config.log" produced by configure as this will help
solve the problem.
我应该怎么做才能使 h.264 中的视频编码工作?
【问题讨论】:
您链接的快速编译指南中的第 1 步:编译 x264 是的,我刚发现需要单独安装libx264,谢谢。 【参考方案1】:好的,我刚发现需要单独安装libx264,命令如下
sudo apt-get install yasm libvpx. libx264.
确实在安装 libx264 后,我得到了
DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_vdpau ) (encoders: libx264 libx264rgb )
【讨论】:
【参考方案2】:呵呵,你已经回答了自己的问题:
这里是h264:
D.V.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_vdpau)
如清单所示,编码器的名称是h264
,编解码器的名称可以在大括号之间找到。
所以你的命令应该是这样的:
ffmpeg -i Fashion.divx -acodec libfaac -vcodec h264 out.mp4
我的 FFmpeg 版本有 libx264,所以 -codecs
选项打印我这个:
DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_vdpau ) (encoders: libx264 libx264rgb )
如您所见,我可以使用-vcodec libx264
或-vcodec libx264rgb
。
【讨论】:
以上是关于ffmpeg转换视频编码的主要内容,如果未能解决你的问题,请参考以下文章
我想用ffmpeg命令行转换一个视频文件,视、音频编码格式不变,只是将画面旋转90度,请问命令行该如何写?