我试图从H264流中获取尺寸(高度和宽度).我知道要从mpeg2流中获取相同的详细信息,您必须查看序列头开始代码后面的四个字节((01B3)).H264的逻辑是否相同?非常感谢我得到的任何帮助..
我必须使用.NET处理MPEG 2传输包.最好的方法是什么?目前我正在考虑使用OpenCV来实现这一目标,但不确定是否可行.
我试图从PTS创建PCR如下.
S64 nPcr = nPts * 9 / 100;
pTsBuf[4] = 7 + nStuffyingBytes;
pTsBuf[5] = 0x10; /* flags */
pTsBuf[6] = ( nPcr >> 25 )&0xff;
pTsBuf[7] = ( nPcr >> 17 )&0xff;
pTsBuf[8] = ( nPcr >> 9 )&0xff;
pTsBuf[9] = ( nPcr >> 1 )&0xff;
pTsBuf[10]= ( nPcr << 7 )&0x80;
pTsBuf[11]= 0;
Run Code Online (Sandbox Code Playgroud)
但问题是VLC只播放第一帧而不播放任何其他帧.我收到警告"早期图片被跳过".
任何人都可以帮助我从PTS转换为PCR ..
我正在尝试-target ntsc-dvd
从摄像机的 HDMI 输出捕获到 DVD 兼容的 mpeg-2 文件 (ffmpeg :) 到 Magewell HDMI to USB 3.0 盒到我的 2012 年末 15" 非视网膜 MacBook Pro(四核 2.3、16gb) ram、ssd),使用 ffmpeg/avfoundation。
我已经尝试了所有我能想到的,或者在网上找到的。我仍然收到重复和丢帧的情况,这会导致音频/视频同步问题或音频丢失,尤其是对于较长的录音。我需要它在长达 2.5 小时的录音中保持稳定。这是 1.5 小时录音的终端输出:
Lapaki:~ Lapaki$ /Users/Lapaki/Desktop/ffmpeg -f avfoundation -video_size 960x540 -pixel_format uyvy422 -framerate ntsc -i "XI:XI" -vf crop=iw-240:ih:120:0 -target ntsc-dvd -aspect 4:3 -q:v 3 -ab 256k /Users/Lapaki/Desktop/FF\ Test/`date +%F`\ `date +%H_%M_%S`.mpg
ffmpeg version 3.2.3-tessus Copyright (c) 2000-2017 the FFmpeg developers
built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg …
Run Code Online (Sandbox Code Playgroud) 我正在互联网上寻找有关计算帧长度的信息并且很难......我能够成功地计算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) 我在PES解复用器中检测新的PES包,搜索packet_start_code_prefix(0x000001).当它发生时,我可以读取PES_packet_length,因此我可以从字节流中提取当前的PES包.但如果它是H.264视频流,那么PES_packet_length = 0.
在这种情况下如何提取PES包?0x000001也可能出现在H.264 nal单位字节流中,因此我不能使用此前缀来查找下一个PES数据包.
我注意到在每个H.264 PES包中,PES包中的最后一个单元是填充数据(nal_unit_type = 12).我是否需要使用此事实来检测当前PES数据包的结束?
我有一个使用 libavcodec (ffmpeg) 的项目。我正在使用它以 4:2:2 Profile, Main Level 对 MPEG-2 视频进行编码。我在 AVCodecContext 中选择了像素格式 PIX_FMT_YUV422P,但是我得到的视频输出的所有颜色都是错误的,在我看来,编码器错误地读取缓冲区,好像它认为它是 4:2:0 色度而不是比 4:2:2。这是我的编解码器设置:
//
// AVFormatContext* _avFormatContext previously defined as mpeg2video
//
//
// Set up the video stream for output
//
AVVideoStream* _avVideoStream = av_new_stream(_avFormatContext, 0);
if (!_avVideoStream)
{
err = ccErrWFFFmpegUnableToAllocateStream;
goto bail;
}
_avCodecContext = _avVideoStream->codec;
_avCodecContext->codec_id = CODEC_ID_MPEG2VIDEO;
_avCodecContext->codec_type = CODEC_TYPE_VIDEO;
//
// Set up required parameters
//
_avCodecContext->rc_max_rate = _avCodecContext->rc_min_rate = _avCodecContext->bit_rate = src->_avCodecContext->bit_rate;
_avCodecContext->flags = CODEC_FLAG_INTERLACED_DCT;
_avCodecContext->flags2 = CODEC_FLAG2_INTRA_VLC | …
Run Code Online (Sandbox Code Playgroud) 我不知道我需要问哪个标签这个问题.我目前正在研究数字电视广播的ATSC标准.在浏览内容时我有疑虑.在数字电视广播中,单个带宽将包含多个频道(服务).
由广播公司编码和多路复用的数据称为传输流.
传输流由标头和有效负载组成.标题包括音频基本流或视频基本流或数据基本流的PID.该传输流由包含中间件的机顶盒接收,该中间件解析传输流并将数据放入PAT,PMT,EIT,ETT,SDT,NIT,CAT表中.
是否可以使用PSI表而不是ATSC表?
我正在使用FFMPEG将VOB文件转换为MPEG2 ffmpeg -i file.vob -c copy
out.mpg
.
它正在转换视频,但音频不会在生成的文件上播放.我明白了
[mpeg @ 0x118afc0] max_analyze_duration 5000000 reached at 5005000
Run Code Online (Sandbox Code Playgroud)
错误,但设置-analyzeduration
为9999999或更高版本并没有消除错误.
我认为它正在正确地读取流:
Metadata: encoder : Lavf53.32.100 Stream #0:0: Video: mpeg2video, yuv420p, 720x480 [SAR 8:9 DAR 4:3], q=2-31, 6124 kb/s, 29.97 fps, 90k tbn, 29.97 tbc Stream #0:1: Audio: ac3, 48000 Hz, stereo, 256 kb/s`
这是我安装的信息
ffmpeg version 0.10.6 Copyright (c) 2000-2012 the FFmpeg developers built on Dec 11 2012 23:58:43 with gcc 4.4.6 20110731 (Red Hat 4.4.6-3) configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg …