关于Ubuntu python程序利用lixb264生成h264格式的视频相关问题

这篇具有很好参考价值的文章主要介绍了关于Ubuntu python程序利用lixb264生成h264格式的视频相关问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

安装nasm

从官网下载:https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/
安装包页面上的nasm-2.13.03.tar.bz2

# 解压
tar -xvjf nasm-2.13.03.tar.bz2
# 配置
cd nasm-2.13.03
./configure
# 编译
make
# 安装到系统
sudo make install

安装libx264

x264库下载地址:http://www.videolan.org/developers/x264.html
下载 x264-master.tar.bz2

# 解压
tar -xvjf x264-master.tar.bz2 
# 配置
cd x264-snapshot
./configure --enable-shared  --disable-asm
# 编译
make
# 安装到系统
sudo make install

# 添加环境变量
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
echo $PKG_CONFIG_PATH

利用命令x264 --version查看是否配置成功

安装ffmpeg

从官网下载ffmpeg ffmpeg-snapshot.tar.bz2

tar -xvjf ffmpeg-snapshot.tar.bz2
cd ffmpeg-snapshot/ffmpeg
./configure --disable-debug  --enable-static --enable-libx264 --enable-gpl
make
# 安装到系统
sudo make install
sudo vi /etc/ld.so.conf
# 文件下方添加 libx264库文件路径
/usr/local/lib

sudo ldconfig

尝试利用ffmpeg转码视频

ffmpeg -i a.mp4 -vcodec libx264 b.mp4

若转出视频为h.264格式则说明成功,可以利用Python对视频帧生成H264格式的视频了,样例如下(事先安装好cv2和scikit-video包):

import cv2
import skvideo.io

cap = cv2.VideoCapture('video/a.mp4')
outputfile = "video/b.mp4"
# 获取视频帧速率 FPS
frame_fps = int(cap.get(cv2.CAP_PROP_FPS))
# 获取视频帧宽度和高度
frame_width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
frame_height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
print("video fps={},width={},height={}".format(frame_fps, frame_width, frame_height))

out = skvideo.io.FFmpegWriter(outputfile,
                            outputdict={'-vcodec': 'libx264'})  # ----------------------
count = 0
while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        print("read over or error!")
        break
    out.writeFrame(frame)  # -------------------------
    cv2.imshow("result", frame)
    if cv2.waitKey(2) & 0xFF == ord('q'):  # 按q退出
        break
out.close()   # -----------------------
cap.release()
cv2.destroyAllWindows()

其实,这里面最重要的步骤就是安装可编码libx264的ffmpeg,期间出过很多错,最重要的就是在利用configure文件生成配置项时,必须要添加--enable-libx264 --enable-gpl命令,否则,无论如何ffmpeg都显示找不到libx264编码器,只能一步步地尝试,无数遍的make clean,最终才成功了。真的不容易!

参考文档:
【音视频】Ubuntu安装开源H.264标准编解码库x264
FFmpeg转码错误Cannot load libcuda.so.1文章来源地址https://www.toymoban.com/news/detail-400370.html

到了这里,关于关于Ubuntu python程序利用lixb264生成h264格式的视频相关问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [解决思路]关于h264裸流合成mp4时时间戳添加问题

            使用GPU编码(Opencv)生成的h264视频片段中不包含时间戳信息,且含有B帧,直接合成mp4后会导致播放出现问题(瞬间播放完成)。因此,在合成时需要手动添加时间戳。         发现生成的视频会 瞬间播放完成 后,意识到是时间戳的问题,检查时间戳代码:        

    2024年01月21日
    浏览(41)
  • Qt基于FFmpeg解码本地视频生成H264文件并播放

    用eseye_u.exe 打开H264文件并播放 本文福利, 免费领取C++音视频学习资料包、技术视频 ,内容包括(音视频开发,面试题, FFmpeg , webRTC , rtmp , hls , rtsp , ffplay , srs ) ↓↓↓↓↓↓ 见下面↓↓文章底部点击免费领取↓↓   三、核心代码:  main中创建对象即可测试:

    2023年04月17日
    浏览(40)
  • Android MediaCodec将h264实时视频流数据解码为yuv,并转换yuv的颜色格式为nv21

    初始化mediacodec 处理数据,解码h264数据为yuv格式 这里传入的是h264格式的实时视频流数据。 处理获取到的nv21颜色格式的yuv数据  yuv视频数据颜色格式转换 h264实时视频流的数据来源 写入h264视频流到sdcard中 rtsp获取h264实时视频流数据  编写C代码加载ffmpeg库 源码地址 https://gi

    2024年01月17日
    浏览(61)
  • 微信小程序支持h5实现webrtc h264 h265低延迟传输渲染

    微信小程序自成体系,自身也带了很强的rtc音视频能力,但是他捆绑了他自己的服务,开发也相对受限于他的api。基于以前的了解可以采webview的方式内嵌h5网址来实现自定义的webrtc.但实践起来并不轻松,主要是小程序的严格限制,各平台的兼容,不得不使出吃奶的力气来实现

    2024年02月04日
    浏览(37)
  • 视频编码(H264编码)

    基本步骤:    1、打开编码器          2、转换NV12到YUV420,这是因为FFmpeg的x264编码器只支持YUV420          3、准备编码数据AVFrame         创建frame:  创建AVPacket: AVPacket* pck = av_packet_alloc(); 4、H264编码       avcodec_send_frame(#AVCodecContext *avctx#, #const AVFrame *frame#)    

    2024年02月03日
    浏览(47)
  • wireshark导出H264裸流

    下载抓包工具:首先,您需要下载并安装一个网络抓包工具,例如Wireshark(https://www.wireshark.org)或tcpdump(https://www.tcpdump.org)。这些工具可用于捕获网络流量并保存为pcap或pcapng文件。在这里插入代码片 打开抓包工具:打开所选择的抓包工具,并启动网络监控。 下载rtp_h264

    2024年02月15日
    浏览(41)
  • 【H.264】RTP h264 码流 实例解析分析 3 : webrtc

    【srs】SRS检测IBMF还是annexb 【H.264】RTP h264 码流 实例解析分析 2 : mediasoup收包 mediasoup 并没完整解析rtp包的内容,可能与mediasoup 只需要转发,不需要解码有关系。 webrtc 本身都是全的。 m98代码,先说关键: 第一:对RTPVideoTypeHeader 构造,可用于后续解析nalu 第二: 可用与组装为

    2024年02月05日
    浏览(66)
  • h264编码概述七(SPS解析)

    SPS即Sequence Paramater Set,又称作序列参数集。SPS中保存了一组编码视频序列(Coded video sequence)的全局参数。 H.264标准协议中规定的SPS格式位于文档的7.3.2.1.1,如下图所示: 1、profile_idc 根据《T-REC-H.264-201402-I!!PDF-E》的附件A.2定义,profiles有如下类型: profile_idc的值用来确定码流符

    2024年02月12日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包