x264

h264 ffmpeg: How to initialize ffmpeg to decode NALs created with x264

笑着哭i 提交于 2021-02-07 10:58:58
问题 I have encoded some frames using x264, using x264_encoder_encode and after that I have created AVPackets using a function like this: bool PacketizeNals( uint8_t* a_pNalBuffer, int a_nNalBufferSize, AVPacket* a_pPacket ) { if ( !a_pPacket ) return false; a_pPacket->data = a_pNalBuffer; a_pPacket->size = a_nNalBufferSize; a_pPacket->stream_index = 0; a_pPacket->flags = AV_PKT_FLAG_KEY; a_pPacket->pts = int64_t(0x8000000000000000); a_pPacket->dts = int64_t(0x8000000000000000); } I call this

Python-Opencv Write x264 video on memory buffer

随声附和 提交于 2021-02-07 10:34:19
问题 I have a problem for writing x264 video(or single frame) on memory buffer. In opencv for images, imencode and imdecode do this task. But i want save x264 video frame for lower memory usage and sending on internet. I am able to with jpeg but jpeg size bigger than x264 video frame and quality much worser. I searched but i can't find how i write video frame on buffer. Here is the example code to taking frames on webcam import numpy as np import cv2 cap = cv2.VideoCapture(0) cap.set(3,320) cap

MSU 2019世界编码器大赛

时光毁灭记忆、已成空白 提交于 2021-01-16 08:41:36
MSU 2019世界编码器大赛的全高清客观质量测试报告于10月21出来了,报告分为免费版本和收费版本($950)。收费版本包含了所有测试结果,免费版本只包含了部分结果。两者区别如下: 此次参与测试的12款编码器如下: 测试序列 此次使用的测试序列较以往有较大改变,最终的测试集由100条序列组成,平均码率为218.9Mbps,中值为143.2Mbps。 测试配置 本次测试提供了3种配置: fast encoding 60fps universal encoding 25fps ripping encoding 1fps,同时要求其SSIM结果要优于x264 "very slow"模式的结果。 硬件配置 CPU: Intel Socket 1151 Core i7 8700K(Coffee Lake)(3.7GHz,6C12T,TDP 95W) 主板:ASRock Z370M Pro4 内存:Cruical CT16G4DFD824A 16GB DIMM DDR4 2400MHz CL15 操作系统:Windows10 x64 评价指标 此次采用的客观评价指标是YUV-SSIM,它是Y-SSIM,U-SSIM,V-SSIM的加权值。 SSIM的计算方法可以参考之前的文章 图像质量评价(一) 结果 对于YUV-SSIM指标,编码器在全部3种配置下结果如图: 第1名: HW265 第2名:

工具---《.264视频 转成 MP4视频》

*爱你&永不变心* 提交于 2020-12-29 03:17:01
《.264 视频 转成 MP4 视频》 安装了“爱奇艺万能播放器”可以打开.264视频,但是opencv却不能直接读取.264视频,还是需要想办法“.264视频 转成 MP4/avi视频”。 折腾大半天,装了卸载,卸载的再装,尝试了各种转换器,都不好使。.264视频 转成 MP4视频,转不成MP4,转成avi也行啊。终于,有了突破,记录一下。 (1)这篇《mp4v2再学习 -- H264视频编码成MP4文件》蛮好,可以在VS下编译使用,也方便以后工作,可惜折腾一圈上不去G网络,放弃。mp4v2在VS2010下的编译与在项目中的使用。 @ https://blog.csdn.net/qq_29350001/article/details/73742075 @ https://blog.csdn.net/ybsun2010/article/details/16336033 (2)也尝试想用FFmpeg,有点复杂。有文档说明,转换效率不高,所以没有直接尝试。 (3)尝试各种转换器:枫叶H.264格式转换器、视频转换大师、极速H.264视频编码器、VideoConver、格式工厂等等。 (4)在吾爱破解上看到一条:( https://www.52pojie.cn/thread-719145-1-1.html ) “ MP4内部,现在全是h.264。 h.264是编码格式,MP4是封装格式

ffmpeg常用命令(windows)

怎甘沉沦 提交于 2020-12-06 18:51:54
本文内容来自互联网 FFMPEG,windows相关命令 一款强大的音视频处理开源库。 相关概念 音/视频流 在音视频领域,一路音/视频成为一路流。 容器 一般把mp4、flv、mov等文件格式称之为容器。在这些常用格式文件中可以存放多路音视频文件。以mp4为例,可以存放一路视频流,多路音频流,多路字幕流。 channel channel是音频中的概念,称之为声道,在一路音频流中可以有单声道、双声道和立体声。 ffmpeg命令 基本命令格式 ffmpeg [global_options] {[input_file_options] -i input_url}... {[output_file_options] output_url}... windows下查看音视频设备 ffmpeg -list_devices true -f dshow -i dummy 音视频录制 screen-capture-recorder 下载地址https://github.com/rdp/screen-capture-recorder-to-video-windows-free/releases 桌面采集工具,可以用来录制桌面 自带虚拟音频捕获器,录制桌面的音频 需要安装javajre 它还包括一个免费的、通用的、开源的DirectShow桌面/屏幕源捕获过滤器。 配合ffmpeg录屏 ffmpeg

华为鲲鹏上安装rtpengine

走远了吗. 提交于 2020-12-02 00:30:12
前言 华为上安装rtpengine,遇到的问题主要有2点 安装rtpengine很多的依赖不支持arm,需要源代码编译 rtpengine使用内核态运行不了,改为用户态运行 安装依赖 yum install pkg-config yum install nasm yum install libgnomeui-devel yum install openssl-devel yum install libevent2-devel yum install pcre-devel yum install xmlrpc-c-devel yum install iptables-devel yum install epel-release.noarch yum install json-glib-devel yum install libpcap-devel yum install flex yum install bison 安装ffmpeg codec libraries 从https://www.ffmpeg.org获取源码 从官网或者git clone git://git.videolan.org/x264.git获取x264源码 从 http://www.tortall.net/projects/yasm/releases/ 获取yasm 安装yasm ./configure make

arm linux 移植 ffmpeg 库 + x264

坚强是说给别人听的谎言 提交于 2020-11-30 01:24:38
背景 Ffmpeg 中带有h264的解码,没有编码,需要添加x264。libx264是一个自由的H.264编码库,是x264项目的一部分,使用广泛,ffmpeg的H.264实现就是用的libx264。 FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。 librtmp用来接收、发布RTMP协议格式的数据。FFmpeg支持RTMP协议,将librtmp编译进去后支持协议RTMPE、RMTPTE、RTMPS。这里我直接使用FFmpeg自带的RTMP功能。 host平台   :Ubuntu 18.04 arm平台   : S5P6818 x264   : 20171212 x265   : v2.6 ffmpeg   : 4.0.1 arm-gcc   :4.8.1 使用以下脚本一键编译。 ## # Copyright By Schips, All Rights Reserved # https://gitee.com/schips/ # File Name: make.sh # Created : Mon 02 Sep 2019 08:05:53 PM HKT ## #!/bin/sh BASE=`pwd` BUILD_HOST=arm-linux OUTPUT_PATH=$

利用python-opencv生成视频帧数控制,和常见错误总结

别说谁变了你拦得住时间么 提交于 2020-10-13 06:19:49
首先呢 利用opencv生成视频的例子相信网络上已经很多了。但是大多数例子都只是捕获一个摄像头就没了。但是在实际运用中会发现。因为涉及到图像处理,生成的视频要不就就是过快要不就是比实际时间长。 控制视频的帧数,捕获摄像头和生成图像都适用 关键在于在生成一帧的时候与下一帧的间隔时间。中间图像处理会造成延迟所以说会造成视频时间比预想的长 #计算处理时间 sleeptime = time.time() - now #计算每一帧要延迟的时间 sleeptime = 1 / fps - sleeptime import time import datetime import cv2 #生成一个视频 fps = 30.0 # 视频帧率 size = (289, 419) baseimgpath = "/root/1.jpg" save_path = "/root/" flag = True fourcc = cv2.VideoWriter_fourcc(*'X264') file = save_path + datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S') + ".mp4" videoWriter = cv2.VideoWriter(file, fourcc, fps, size) while flag: now = time.time