我想了解视频和音频解码的工作原理,特别是定时同步(如何获得30fps视频,如何将其与音频耦合等).我不想知道所有的细节,只是它的本质.我希望能够编写实际视频/音频解码器的高级简化.
你能指点一下吗?MPEG2视频/音频解码器的实际C/C++源代码将是理解我认为的那些事情的最快方式.
我正在研究比较图像的系统.MPEG-7标准提供了一些可用于其的描述符,例如:显性颜色,颜色布局,边缘直方图,颜色相干矢量.你知道我在哪里可以获得其中一些方法的源代码吗?
谢谢!
有没有办法在MPEG流中插入用户数据(起始码= 0X1B2)?我正在寻找的是一个简单的工具,脚本或使用和Hex编辑器的一些技巧...
或者你可能有一个ffmpeg(libavcodec和libavformat)补丁允许这样做?
根据ffmpeg手册,设置-g是在"I"帧之间定义空间,并设置-bf为使用"B"帧.前者我得到了,但后者没有.
目标:我正在尝试使用GOP 3,12(M = 3,N = 12)的视频.这意味着:2"B"帧分隔每个"P"帧,"I"帧具有12帧距离.或者简单地说:"IBBPBBPBBPBBI"
我认为我只得到N = 12,使用以下命令:
ffmpeg -s cif -r 30 -b 64000 -bt 3200 -g 12 -y -i video.yuv -vcodec mpeg4 video.m4vMP4Box -hint -mtu 1460 -fps 30 -add video.m4v video.mp4ffmpeg -y -i video.mp4 video_ref.yuv../cmd/psnr 352 288 420 video.yuv video_ref.yuv > psnr_ref.txt../cmd/mp4trace -f -s 192.168.0.2 12346 video.mp4 > tracehead -n 20 trace结果:
[robert@10-2Fontes]$ head -n 20 trace
1 H 12002 9 0.000
2 P 11479 8 …Run Code Online (Sandbox Code Playgroud) 我想为HLS流创建mpeg ts段.ts应包含元数据作为单独的流,如下所示 -
**Stream #0:0**[0x102]: Data: timed_id3 (ID3 / 0x20334449)
**Stream #0:1**[0x100]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p, 426x240, 25 fps, 25 tbr, 90k tbn, 6k tbc
**Stream #0:2**[0x101]: Audio: aac ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp, 98 kb/s
Run Code Online (Sandbox Code Playgroud)
我正在使用ffmpeg并尝试了各种选项.我得到以下ts结构 -
**service_name** : Service01
**service_provider**: FFmpeg
**Stream #0:0[0x100]**: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv), 720x576 [SAR 1:1 DAR 5:4], max. 104857 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
**Stream #0:1[0x101]**: Audio: mp2 ([3][0][0][0] / 0x0003), …Run Code Online (Sandbox Code Playgroud) 什么是lib Swscale用于ffmpeg程序员?
我正在互联网上寻找有关计算帧长度的信息并且很难......我能够成功地计算MPEG-4,AAC的帧长度,使用:
frameLengthMs = mSamplingRate/1000
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为AAC上每帧有一个样本.对于MPEG-1或MPEG-2,我很困惑.每帧有1152个样本,好的,那我该怎么办呢?:P
框架样本:
MPEGDecoder(23069): mSamplesPerFrame: 1152
MPEGDecoder(23069): mBitrateIndex: 7
MPEGDecoder(23069): mFrameLength: 314
MPEGDecoder(23069): mSamplingRate: 44100
MPEGDecoder(23069): mMpegAudioVersion 3
MPEGDecoder(23069): mLayerDesc 1
MPEGDecoder(23069): mProtectionBit 1
MPEGDecoder(23069): mBitrateIndex 7
MPEGDecoder(23069): mSamplingRateFreqIndex 0
MPEGDecoder(23069): mPaddingBit 1
MPEGDecoder(23069): mPrivateBit 0
MPEGDecoder(23069): mChannelMode 1
MPEGDecoder(23069): mModeExtension 2
MPEGDecoder(23069): mCopyright 0
MPEGDecoder(23069): mOriginal 1
MPEGDecoder(23069): mEmphasis 0
MPEGDecoder(23069): mBitrate: 96kbps
Run Code Online (Sandbox Code Playgroud) 似乎TVideoCaptureDevice在FireMonkey(Delphi XE6)中,但在官方文档中,捕获过程最终在线:
if(VideoCamera){
//do something
}
Run Code Online (Sandbox Code Playgroud)
如何在飞行中将视频录制到mp4?试过看谷歌,但没有找到任何答案......
我可以使用这一行创建一个mpg视频
ffmpeg -f image2 -i 100%03d0.png movie.mpg
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试创建一个mp4视频,我会得到一个黑屏的视频.
ffmpeg -f image2 -i 100%03d0.png movie.mp4
Run Code Online (Sandbox Code Playgroud)
我的数据目录如下:1000010.png,1000020.png,... 1001260.png
我有一个视频,我想向用户展示('''用户,因为他可以访问Chrome PC或Chrome android).
如果有可能它会很好用html5标签,但因为它TS它不能......
所以,我需要一个更好的建议,我怎么能玩它们而不是打开vlc并复制并通过文件路径.但那是个糟糕的主意......
我看到这个库添加了VLC协议(vlc:// links),但我更喜欢使用服务器端解决方案.
我上传了一个示例文件,您可以在此处看到.
我不想将所有文件转换为另一种格式.
编辑:如果有人来这里,在接受@szatmary建议之后,GitHub上有一些项目是谁做的,但我不能使用其中任何一个没有部分转换(以某种方式),并且因为我正在使用非常大的文件(10G +)和极弱的计算机(单1.8 Cpu核心)我设法只显示音频,而不是真正的解决方案,但满足我的需求.