标签: multimedia

使用 ffmpeg 从可变帧率视频中提取每一帧

我正在尝试提取几个视频的所有帧。这些视频是在以可变帧速率保存输出的相机上捕获的,因此,某些帧在时间上比其他帧更接近(根据mediainfo从 ~27 到 ~30 fps )

这个帧要和一些元数据同步,所以我不仅需要提取它们,还要保留视频每一帧拍摄的[相对]时间信息。

我一直在使用 ffmpeg 来提取视频帧,当视频帧率不再恒定时,挑战就来了。任何其他不同于 ffmpeg 的方法或程序都可以,只要它能完成工作。

video multimedia ffmpeg video-processing

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

QMediaPlayer无法打开媒体文件

我正在尝试在我的应用程序中设置QVideoWidget,但我没有音频/视频.这是我创建相关对象的方式:

m_player = new QMediaPlayer;

m_playlist = new QMediaPlaylist(m_player);
m_playlist->addMedia(QUrl::fromLocalFile("/home/username/Documents/test.mp4"));

m_widgetVideo = new QVideoWidget;
m_player->setVideoOutput(m_widgetVideo);

m_layout = new QHBoxLayout(this);
m_layout->addWidget(m_widgetVideo);
this->setLayout(m_layout);

m_playlist->setCurrentIndex(0);
m_player->play();
Run Code Online (Sandbox Code Playgroud)

我得到的只是黑屏,没有音频和视频.我不知道我是否可以在这里发布MP4文件(这是从YouTube下载的测试文件),所以如果有人需要有关它的信息,请问我,我会得到它.以下是在测试文件上运行ffprobe的结果:http://pastebin.com/xpMYbApY

QMediaPlayer->duration();  = -1
QMediaPlayer->supportedMimeTypes(); = ()
QMediaPlayer->errorString() = ""
Run Code Online (Sandbox Code Playgroud)

另外,我有这些gstreamer包:

gstreamer0.10-alsa
gstreamer0.10-ffmpeg
gstreamer0.10-nice
gstreamer0.10-plugins-bad
gstreamer0.10-plugins-bad-multiverse
gstreamer0.10-plugins-base
gstreamer0.10-plugins-base-apps
gstreamer0.10-plugins-good
gstreamer0.10-plugins-ugly
gstreamer0.10-pulseaudio
gstreamer0.10-tools
gstreamer0.10-x
Run Code Online (Sandbox Code Playgroud)

gst-launch-0.10完美播放文件,这是否意味着Qt实际上找不到已安装的GStreamer编解码器?

c++ video qt multimedia codec

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

与 mjpeg 不兼容的像素格式 YUV420P

我正在使用 ffmpeg 使用 mjpeg 编解码器从 jpeg 图像制作视频。我用这个命令

ffmpeg -i frame%d.jpg -c:v mjpeg -pix_fmt yuv420p -q:v 1 -y out.mp4
Run Code Online (Sandbox Code Playgroud)

我有这个警告,而是选择了 yuvj420p。在阅读了该像素格式后,我发现不推荐使用 YUV420p 并设置 -color_range。所以我这样做了并将 color_range 设置为 2,但没有任何改变。

multimedia ffmpeg mjpeg

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

如何在Shell脚本中为"for"语句使用2变量

我想用f和v作变量.f*.mkv和v*.mp3

for f in *.mkv v in *.mp3; do 
   ffmpeg -i "$f" -i "$v" -vcodec copy merge_"$f"
done
Run Code Online (Sandbox Code Playgroud)

我不知道如何正确地做到这一点.我仍然是bash shell脚本的新手.

我希望有一个人可以帮助我.

bash shell multimedia ffmpeg video-editing

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

使用ffmpeg旋转视频添加黑条

我有很多mp4全高清视频用智能手机制作,看起来旋转90°.

这些文件具有正确的旋转元数据,它们可以在VLC或其他桌面媒体播放器上正常播放,但我想在不处理mp4元数据的DVD播放器上显示它们.

所以我尝试用ffmpeg进行转置,但我获得了1080x1920文件,分辨率显然不被tv/dvd-player识别.

如何移调,调整大小并添加正确尺寸的黑色边(左/右)条以获得"正确"的1920x1080视频?

video multimedia ffmpeg

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

MP4 Atom Parsing - 在哪里配置时间......?

我写了一个MP4解析器,它可以很好地读取MP4中的原子,并将它们拼接在一起 - 结果是一个技术上有效的MP4文件,Quicktime可以打开等等,但它不能播放任何音频,因为我相信定时/采样信息全部关闭.我应该提一下,我只对音频感兴趣.

我正在做的是尝试从现有的MP4中取出moov atoms/etc,然后只取一个文件中mdat原子的子集来创建一个新的,更小的MP4.在这方面,我已经改变了durationmvhd原子,以及在时间mdia头.tkhd这个文件中没有原子有编辑,所以我相信我不需要改变那里的持续时间 - 我错过了什么?

在创建新的MP4时,我正确地mdat使用宽盒子对块进行切片,并将'mdat'标题/大小保持在正确的位置 - 我确保使用新内容更新大小.

现在它完全有110%可能我错过了一些关于格式的重要内容,但如果可能的话,我很想得到最后一块.有人有任何意见/想法吗?

代码可以在以下链接中找到:

https://gist.github.com/ryanmcgrath/958c602cff133bd7fa0b

audio mp4 multimedia

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

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

在CentOS中将MP3转换为OGG

我们需要在JPlayer中播放MP3文件.我们不想使用闪回后备.因此,要在Firefox上播放这些文件,我想将其转换为OGG.你们有没有任何选择/替代方案.我尝试在CentOS中使用dir2ogg,但它没有发现用于MP3的DECODER.请建议在CentOS中将mp3转换为ogg的最佳工具.

unix linux multimedia

0
推荐指数
1
解决办法
6743
查看次数

我需要从示例 MPEG-TS 文件中获取 PIDS

我需要从示例 MPEG-TS 文件中获取 PIDS,我尝试使用读取文件fopen()并以十六进制格式获取数据。现在我一直在寻找整个数据中的 PID 字节。谁能帮我吗?

我使用了以下代码:

#include <stdio.h>
#include <string.h>

void main()
{

FILE *myfile;

FILE *output;

int i=0,j;

unsigned int buffer;

 int o;
 myfile=fopen("screen.ts","rb");
 output = fopen("output2.txt","w");
 do{
     o=fread(&buffer, 2, 1, myfile);
    if(o!=1)
    break;         
    printf("%d: ",i);     
    printf("%x\n",buffer);
    fprintf(output,"%x ",buffer);
    i++;
   }while(1);

   }
Run Code Online (Sandbox Code Playgroud)

我从文件中获取了数据,现在我需要找到数据中的“PID”字节。

c c++ multimedia ffmpeg

-4
推荐指数
1
解决办法
1815
查看次数