标签: x264

使用gstreamer解码mp4视频

我想在Gstreamer中播放mp4视频,但是我找不到x264dec的错误.我写了这个管道

  gst-launch filesrc \
     location=/media/thesis/Gstreamer/pub_Irma.mp4 \
   ! qtdemux name=demux demux. ! queue ! faad \
   ! audioconvert ! audioresample ! autoaudiosink demuxer. \
   ! queue ! x264dec ! ffmpegcolorspace ! autovideosink 
Run Code Online (Sandbox Code Playgroud)

在此步骤之后,我的目标是生成mp4视频解码的执行跟踪.我不知道x264dec的问题在哪里.

video-processing decoding gstreamer h.264 x264

10
推荐指数
3
解决办法
6万
查看次数

avconv在14.04从libx264进行管道时抱怨"非单调增加dts到流中复用"

我有一段代码,它采用图像流并使用x264将它们写入文件进行编码和avconv.相关位如下

// Setup encoder
sprintf(cmd, "avconv -i pipe: -vcodec copy %s", filename);
fp = popen(cmd, "w");
x264_param_default_preset(&params, "ultrafast", "stillimage,zerolatency");
params.i_fps_num = fps;
params.i_fps_den = 1;
x264_picture_alloc(&in, X264_CSP_I420, width, height);
params.i_csp = X264_CSP_I420;
in.img.i_csp = X264_CSP_I420;
x.params.b_vfr_input = 0;
in.i_pts = -1;
out.i_pts = -1;
params.i_width = width;
params.i_height = height;
encoder = x264_encoder_open(&params);

in.img.i_plane = 1;
in.img.i_stride[0] = width;
ret = x264_encoder_headers(encoder, &nals, &nheader);
header_size = nals[0].i_payload + nals[1].i_payload + nals[2].i_payload;
fwrite(nals[0].p_payload, header_size, 1, fp);

...
// Loop body
++in.i_pts; …
Run Code Online (Sandbox Code Playgroud)

c ubuntu x264 avconv ubuntu-14.04

10
推荐指数
1
解决办法
2万
查看次数

H264 ffmpeg x264以外的编码器

我正在处理的iPhone应用程序在特定的用户定义的时间间隔内捕获图像,我正在寻找一种方法将这些图像组合成H264编码的视频.我已经对谷歌进行了一些研究,看起来我将不得不在iPhone上使用像ffmpeg/mencoder这样的东西?(还发现有人将ffmpeg移植到iPhone,ffmpeg4iPhone)

但是,我发现x264是GPL许可证,如果我使用ffmpeg,则需要我开源我的项目.还发现有人建议使用Ogg Theora,但如果我使用它,我需要将它移植到iPhone.(我不知道现在该怎么做).

这有什么解决方法吗?有任何想法吗?谢谢.

iphone encoding ffmpeg h.264 x264

9
推荐指数
2
解决办法
7870
查看次数

使用 cv2 VideoWriter 编写 numpy 数组

我在使用 opencv2.3.1 VideoWriter 编写玩具示例视频时遇到问题,这是我的做法:

writer = cv2.VideoWriter('test1.avi',cv.CV_FOURCC('P','I','M','1'),25,(640,480))
for i in range(1000):
    x = np.random.randint(10,size=(480,640)).astype('uint8')
    writer.write(x)
#del writer (with or without tested)
Run Code Online (Sandbox Code Playgroud)

如果扩展名是 mpg,我尝试了所有可能的组合,结果是 0 字节的文件,如果是 avi,则是 5.5kb。我应该说有些人指出我应该从源代码构建 ffmpeg 库,而不是 apt-get 它。好吧,我在本网站http://vinayhacks.blogspot.com/2011/11/installing-opencv-231-with-ffmpeg-on-64.html的帮助下在一台新机器上做到了这一点 。编译opencv时也出现错误(该错误与ffmpeg有关)。现在我真的没有想法了,如何使用 OPENCV 生成视频?

提前致谢

python opencv ffmpeg numpy x264

9
推荐指数
3
解决办法
2万
查看次数

即使我安装了它也找不到yasm

我遇到了一个奇怪的问题.我试着安装x264.运行sudo ./configure --enable-shared时,它给出了:

找不到汇编程序最低版本是yasm-0.7.0如果你真的想在没有asm的情况下编译,请使用--disable-asm进行配置.

但我已经安装了yasm-0.7.0,以证明,我运行yasm --version,它给出了:

*yasm 0.7.0.2066编译于2012年5月8日.版权所有(c)2001-2008 Peter Johnson和其他Yasm开发人员.运行yasm --license以获取许可概述和摘要.*

我将yasm安装到/ usr/local/yasm,为什么找不到yasm?

linux x264 yasm

9
推荐指数
3
解决办法
1万
查看次数

如何编写Live555 FramedSource以允许我直播H.264

我一直在尝试编写一个派生自Live555中FramedSource的类,它允许我将实时数据从我的D3D9应用程序传输到MP4或类似程序.

我每帧做的是将后备缓冲区作为纹理抓取到系统内存中,然后将其从RGB - > YUV420P转换,然后使用x264对其进行编码,然后理想地将NAL数据包传递到Live555.我创建了一个名为H264FramedSource的类,它基本上是通过复制DeviceSource文件从FramedSource派生的.我没有将输入作为输入文件,而是将其作为NAL数据包,我更新了每个帧.

我对编解码器和流媒体都很陌生,所以我可能做的一切都完全错了.在每个doGetNextFrame()中,我应该抓住NAL数据包并执行类似的操作

memcpy(fTo, nal->p_payload, nal->i_payload)
Run Code Online (Sandbox Code Playgroud)

我假设有效载荷是我的帧数据,以字节为单位?如果有人从FramedSource那里得到一个类的例子,它可能至少接近我想要做的事情,我很乐意看到它,这对我来说是全新的,并且弄清楚发生了什么有点棘手.Live555的文档几乎就是代码本身,这并不能让我很容易理解.

c++ ffmpeg h.264 x264 live555

9
推荐指数
1
解决办法
2万
查看次数

无法将libavformat/ffmpeg与x264和RTP同步

我一直在研究一些流媒体软件,它使用H.264通过网络从各种摄像机和流中获取实时信息.为了实现这一点,我直接使用x264编码器(带有"zerolatency"预设)并提供NAL,因为它们可用于libavformat以打包到RTP(最终是RTSP).理想情况下,此应用程序应尽可能实时.在大多数情况下,这一直运作良好.

然而不幸的是,存在某种同步问题:客户端上的任何视频回放似乎都显示了一些平滑帧,然后是短暂停顿,然后是更多帧; 重复.此外,似乎有大约4秒的延迟.我尝试过的每一个视频播放器都会出现这种情况:Totem,VLC和基本的gstreamer管道.

我把它煮成了一个小小的测试用例:

#include <stdio.h>
#include <stdint.h>
#include <unistd.h>
#include <x264.h>
#include <libavformat/avformat.h>
#include <libswscale/swscale.h>

#define WIDTH       640
#define HEIGHT      480
#define FPS         30
#define BITRATE     400000
#define RTP_ADDRESS "127.0.0.1"
#define RTP_PORT    49990

struct AVFormatContext* avctx;
struct x264_t* encoder;
struct SwsContext* imgctx;

uint8_t test = 0x80;


void create_sample_picture(x264_picture_t* picture)
{
    // create a frame to store in
    x264_picture_alloc(picture, X264_CSP_I420, WIDTH, HEIGHT);

    // fake image generation
    // disregard how wrong this is; just writing a quick test
    int strides = …
Run Code Online (Sandbox Code Playgroud)

c ffmpeg rtp x264 libavformat

8
推荐指数
1
解决办法
5264
查看次数

什么是ffmpeg,avcodec,x264?

维基,我读到了

FFmpeg是一个自由软件项目,可生成用于处理多媒体数据的库和程序.FFmpeg最值得注意的部分是libavcodec,一个由其他几个项目使用的音频/视频编解码器库,libavformat,音频/视频容器mux和demux库,以及用于转码多媒体文件的ffmpeg命令行程序.

那么ffmpeg是avcodec的包装器?我经常听到人们使用ffmpeg用x264编码视频.那么ffmpeg也是x264的包装器?

它们有什么关系?

ffmpeg x264 libavcodec

8
推荐指数
1
解决办法
1万
查看次数

将FFmpeg中的视频编码为X264并使其在Quicktime中可播放

我想知道哪些命令行设置我需要明确设置(或避免)使用ffmpeg将视频编码成x264(mp4格式),默认情况下可以在Quicktime中播放.我发现许多预定义的预设文件对我有用,但其中一些不会,例如我无法使任何无损的文件工作,我也对这些文件感兴趣.例如,libx264-lossless_max.ffpreset将对我的视频进行编码,但它只能在VLC中播放,而不能在Quicktime中播放.在Quicktime中,视频保持黑色.我知道Perian是一个选项,但我希望我的文件可以在不安装Perian的情况下播放.谢谢你的帮助.

quicktime ffmpeg video-encoding h.264 x264

7
推荐指数
1
解决办法
3785
查看次数

像素格式为yuvj420p的mp4将无法在Chrome 17中播放,但在Safari,IE等中播放

文件来自尼康D3s(mov),用ffmpeg转换为mp4.所有其他文件(avi,flv,mp4等)都没有问题

请参阅文件:http://shootitlive.s3.amazonaws.com/output.mp4 (从不同主机提供时,Chrome中的相同非工作结果,并且始终在Safari中使用,在Firefox中使用闪存,Chromium)

/ usr/local/bin/ffmpeg -i nonworking.MOV -acodec libfaac -ab 128k -vcodec libx264 -preset slow -crf 30 -threads 0 -s 768x576 -sepect 1.33333333333 -ar 48000 output.mp4

无法找到任何奇怪的东西(但不知道该找什么):

ffmpeg -v 5 -i filename -f null - 2>error.log`
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

mp4 google-chrome ffmpeg x264

7
推荐指数
1
解决办法
1万
查看次数