草庐IT

c++ - 使用 FFMPEG 库接收 RTSP 流

我的LAN上有一个使用RTSP流式传输视频的IPCamera。我已经能够使用ffplay命令成功捕获并显示它:ffplayrtsp://admin:123456@192.168.2.50:7070(有认证)所以我想使用ffmpeg库在C/C++中进行编程来实现相同的目的。我想这一定是可能的。所以让我提出两个简单的问题:如何使用FFMPEG库在C/C++程序中接收流?(只需提供一些URL/教程,因为google没有帮助)如何显示收到的视频?(这里也一样,一些很好的URL可以指导我)。 最佳答案 对于rtsp流,以下内容对我有用(接收帧

c++ - 如何在 ffmpeg 中使用硬件加速

我需要ffmpeg使用硬件加速来解码我的视频(例如h264)。我正在使用通常的解码帧方式:读取数据包->解码帧。而且我想让ffmpeg加快解码速度。所以我用--enable-vaapi和--enable-hwaccel=h264构建了它。但我真的不知道接下来我该怎么做。我尝试使用avcodec_find_decoder_by_name("h264_vaapi")但它返回nullptr。无论如何,我可能想使用其他API而不仅仅是VAAPI。应该如何加快ffmpeg解码?附:我在Internet上没有找到任何使用ffmpeg和hwaccel的示例。 最佳答案

go - 将原始 []byte 视频传输到 ffmpeg - Go

我有一个直接来自http正文的[]字节格式的视频://ParsingvideovideoData,err:=ioutil.ReadAll(r.Body)iferr!=nil{w.WriteHeader(UPLOAD_ERROR)w.Write([]byte("Erroruploadingthefile"))return}我需要一帧视频并将其转换为png。这就是有人使用ffmpeg处理静态和编码文件的方式:filename:="test.mp4"width:=640height:=360cmd:=exec.Command("ffmpeg","-i",filename,"-vframes"

json - 以友好的方式获取ffmpeg信息

每次我尝试使用ffmpeg获取有关我的视频文件的一些信息时,都会吐出很多无用的信息和好东西。我正在使用ffmpeg-iname_of_the_video.mpg。有没有可能以友好的方式得到它?我的意思是JSON会很棒(甚至丑陋的XML也可以)。到目前为止,我让我的应用程序使用正则表达式解析数据,但在某些特定的视频文件上出现了很多令人讨厌的角落。我修复了我遇到的所有问题,但可能还有更多。我想要类似的东西:{"Stream0":{"type":"Video","codec":"h264","resolution":"720x480"},"Stream1":{"type":"Audio","

linux - 如何使用 ffmpeg 高质量将 flv 转换为 avi

需要将flv文件转换为avi或mov,尝试ffmpeg但输出质量很差。如何使视频输出与源的质量相同?我以为ffmpeg-iname.flv-s320x...name.avi可以,但没有用。 最佳答案 这是我用于ffmpeg项目的命令,质量应该足够好。如果没有,请尝试增加比特率(-b参数):ffmpeg-iinput.flv-ar22050-b2048koutput.avi 关于linux-如何使用ffmpeg高质量将flv转换为avi,我们在StackOverflow上找到一个类似的问题

linux - 如何从 ffmpeg 输出中提取持续时间?

要获取有关媒体文件的大量信息,可以这样做ffmpeg-i它将输出很多行,特别是一行Duration:00:08:07.98,start:0.000000,bitrate:2080kb/s我只想输出00:08:07.98,所以我试试ffmpeg-ifile.mp4|grepDuration|sed's/Duration:\(.*\),start/\1/g'但它会打印所有内容,而不仅仅是长度。甚至ffmpeg-ifile.mp4|grepDuration输出所有内容。如何获得持续时间长度? 最佳答案 你可以使用ffprobe:ffpro

ffmpeg的amix混音改进

ffmpegaf_amix混音改进概述af_amix介绍af_amix不足改进方法概述常见的混音算法是采用振幅乘以权值再求和,如下图所示,两路音频混音,a1,a2分别为源音频1和源音频2权重,其中要求a1+a2=1。af_amix介绍ffmpeg中af_amix设计原理大致上和常用算法雷同。af_amix算法默认每路音频权重相同(均为1/n,其中n是混音音频总数)。若要加重某路音频音量,可通过构造一个weights数组(空格隔开),例如三路混音是数组“811”,权重值将分别为"0.80.10.1",它将代替默认的1/3。(计算方法可参考下面节选的代码)另外,考虑到混音的音源时长存在不同,af_

FFmpeg入门 - 视频播放

音视频最好从能够直接看到东西,也更加贴近用户的播放开始学起.音视频编解码基础我们可以通过http、rtmp或者本地的视频文件去播放视频。这里的"视频"实际上指的是mp4、avi这种既有音频也有视频的文件格式。这样的视频文件可能会有多条轨道例如视频轨道、音频轨道、字幕轨道等.有些格式限制比较多,例如AVI视频轨道只能有一条,音频轨道也只能有一条.而有些格式则比较灵活,例如OGG视频的视频、音频轨道都能有多条.像音频、视频这种数据量很大的轨道,上面的数据实际上都是通过压缩的。视频轨道上可能是H264、H256这样压缩过的图像数据,通过解码可以还原成YUV、RGB等格式的图像数据。音频轨道上可能是M

ffmpeg - 如何安装和运行 phpize

我一直想安装ffmpeg作为我的PHP设置的扩展。所以在我安装它之前,我需要phpize它。我通过sudoapt-getinstallphp5-dev安装了php5-dev。但是现在当我运行phpize我得到以下错误:phpizeCannotfindconfig.m4.Makesurethatyourun'/usr/bin/phpize'inthetoplevelsourcedirectoryofthemodule我的php.ini的位置是/usr/local/zend/etc/php.ini从另一个在线资源我尝试了这个sudoapt-getinstallautoconfautomak

FFmpeg学习:视音频同步

视频和音频是各自独立播放的,并不同步。本文主要描述了如何以音频的播放时长为基准,将视频同步到音频上以实现视音频的同步播放的。主要有以下几个方面的内容视音频同步的简单介绍DTS和PTS计算视频中Frame的显示时间获取Audioclock(audio的播放时长)将视频同步到音频上,实现视音频同步播放视音频同步简单介绍一般来说,视频同步指的是视频和音频同步,也就是说播放的声音要和当前显示的画面保持一致。想象以下,看一部电影的时候只看到人物嘴动没有声音传出;或者画面是激烈的战斗场景,而声音不是枪炮声却是人物说话的声音,这是非常差的一种体验。在视频流和音频流中已包含了其以怎样的速度播放的相关数据,视频