我正在尝试使用 FFmpeg 将视频从 mp4 格式转换为 mpeg,以便我可以合并多个视频。我有一个 FFmpeg 的自定义构建,我可以在其中控制配置选项:
ffmpeg -y -i VID_20150514_171122_12085.mp4 -an -f mpeg VID_20150514_184208.mp4.0.mpg
ffmpeg version git-2015-02-25-b0d3322 Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.8 (GCC)
configuration: --arch=arm --cpu=cortex-a8 --target-os=linux --enable-runtime-cpudetect --enable-pic --disable-shared --enable-static --cross-prefix=/home/jon/Development/android-ndk-r10d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi- --enable-cross-compile --sysroot=/home/jon/Development/android-ndk-r10d/platforms/android-9/arch-arm/ --extra-cflags='-I../x264 -mfloat-abi=softfp -mfpu=neon -fPIE -pie' --extra-ldflags='-L../x264 -fPIE -pie' --enable-version3 --enable-gpl --disable-doc --enable-yasm --disable-everything --enable-decoder=mpeg --enable-decoder=mpeg4 --enable-decoder=aac --enable-decoder=h264 --enable-decoder=libx264 --enable-encoder=libx264 --enable-decoder=mpegvideo --enable-decoder=mpeg1video --enable-decoder=mpeg2video --enable-encoder=mpeg --enable-encoder=mpeg4 --enable-encoder=aac --enable-encoder=h264 --enable-encoder=mpeg1video --enable-encoder=mpeg2video --enable-parser=aac --enable-parser=mpeg4video --enable-parser=ac3 --enable-parser=h261 --enable-parser=h264 --enable-parser=vc1 --enable-demuxer=mpegvideo --enable-demuxer=aac --enable-demuxer=m4v --enable-demuxer=mov --enable-demuxer=h264 …Run Code Online (Sandbox Code Playgroud) 我正在尝试在播放视频的地方设置一个 HTML 页面。
我的视频是 .mkv 文件。它在 Chrome 上运行良好,但我没有任何声音。音频编解码器是AC3。
我的代码:
<p><video src="video.mkv" type='video/x-matroska; codecs="a_ac3, avc"' autoplay controls onerror="failed(event)" ></video></p>
Run Code Online (Sandbox Code Playgroud)
我仔细研究了许多链接和网站,但未能得到答案。我不想问这个,我知道 JPEG 压缩,它只生成压缩图像。甚至 Motion JPEG 也会压缩图像 I 帧。我的问题是有什么区别。我正在编写一个需要发送视频的相机应用程序,但我的相机单元支持 jpeg 和 mjpeg。运动 JPEG 相对于 JPEG 的优势是什么?感谢您的任何建议
我发现 JPEG 和 MJPEG 像素格式之间的 V4L2 差异 http://www.axis.com/in/en/learning/web-articles/technical-guide-to-network-video/video-compression
第一个链接意味着使用 MJPEG 可以提高捕获率,但图像的大小将相同。第二个链接确认 MJPEG 和 JPEG 压缩之间没有区别。如果上述结论成立,那么我可以在任何图像查看器上打开 mjpeg 帧,但我不能像第一个链接中所述
我认为flash(更具体地说是Adobe的Flash播放器浏览器插件)可能使用OS API来安装一些已安装的MP3编解码器(在客户端计算机上).我听说有人说Flash本身支持MP3.真的吗?
我猜flash有它自己的视频和音频格式.(FLV和音频类似的东西).
这个问题也可以被称为"Flash(插件)本地支持哪些音频/视频格式".
谢谢.
我正在检查从Android设备录制的.mp4视频文件中包含的解码器配置记录.某些设备在解码器配置记录中写入了奇怪或不正确的参数.
以下是来自Galaxy Player 4.0的示例,该示例不正确:
DecoderConfigurationRecord: 010283f2ffe100086742000de90283f201000568ce010f20
pictureParameterSetNALUnits : 68ce010f20
AVCLevelIndication : 242
AVCProfileIndication : 2
sequenceParameterSetNALUnits : 6742000de90283f2
lengthSizeMinusOne : 3
configurationVersion : 1
profile_compatibility : 131
profile_idc : 103
constraint_set : 16
level_idc : 0
Run Code Online (Sandbox Code Playgroud)
AVCLevelIndication == 242 是错误的,因为标准状态51是最高值.
AVCProfileIndication 应该在(66,77,88,100,120,..)
profile_compatibility被称为constraint_set?_flags和2个最低有效位被保留并且被置于等于0
它应该是这样的:
DecoderConfigurationRecord: 0142000dffe100086742000de90283f201000568ce010f20
pictureParameterSetNALUnits : 68ce010f20
AVCLevelIndication : 13
AVCProfileIndication : 66
sequenceParameterSetNALUnits : 6742000de90283f2
lengthSizeMinusOne : 3
configurationVersion : 1
profile_compatibility : 0
profile_idc : 103
constraint_set : 16
level_idc : …Run Code Online (Sandbox Code Playgroud) 我在使用opus-codec时遇到了一些麻烦.
opus_encoder_create()返回一个空指针并抛出一个OPUS_BAD_ARG错误
OpusEncoder * m_enc;
m_enc = opus_encoder_create(44100, 2, OPUS_APPLICATION_VOIP, &this->m_error);
Run Code Online (Sandbox Code Playgroud)
这是我用gdb得到的:
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x0000000000001fa4
opus_encode_float (st=0x0, pcm=0x100717e20, frame_size=8, data=0x100840c00 "", out_data_bytes=4000) at opus_encoder.c:581
581 st->rangeFinal = 0;
(gdb) bt
#0 opus_encode_float (st=0x0, pcm=0x100717e20, frame_size=8, data=0x100840c00 "", out_data_bytes=4000) at opus_encoder.c:581
#1 0x0000000100002b1d in Encoder::Encode (this=0x7fff5fbffa70, audioFrame=0x100717e20, frameSize=8) at Encoder.cpp:39
#2 0x000000010000192c in main () at main.cpp:101
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?谢谢.
我正在尝试在我的应用程序中设置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编解码器?
我试图在iOS中将AAC音频解码为PCM音频,最好的方法是什么?任何示例代码都非常有用......有没有简单的API来做这个...?
我发现MediaPlayer无法播放编码的视频,H.264 Main Profile我尝试过ExoPlayer,Vitamio但没有一个能解决我的问题.最后我发现最好的解决方案是将视频转换为H.264 Baseline Profile.FFmpeg它几乎是9MB,对我的项目来说太重了,所以我不喜欢用它来通过命令将视频转换成该配置文件.我的朋友建议在服务器端转换视频,但我们都知道它的性能不佳.我该怎么办?这个问题的最佳解决方案是什么?
我正在尝试确定最佳编码器或编码参数,以便尽可能在Android手机上播放高分辨率(质量)视频.我不太关心文件大小,只要它播放顺畅,它就可以是"正确压缩"视频的三倍.默认情况下,所有编码器都以尽可能小的文件进行优化,以牺牲视频解码所需的计算能力为代价 - 我希望以牺牲文件大小为代价优化计算能力.
所以基本上我想知道如何以增加文件大小为代价有效地减轻解码器负担,使视频播放时没有任何伪影或冻结.
谁能推荐一种技术来实现这一目标?
澄清:我有一个非常高质量(1440p)的本地可用文件,我想转码到尽可能多的可玩分辨率/质量,而不关心文件大小(1080p +).
谢谢.