问题标签 [hevc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ffmpeg - FFMPEG:编码 x265,容器 mpeg2 ts,流 STARTCODE MISSING
我正在尝试使用 FFMPEG x265 对视频进行编码,将其放入 MPEG2 TS,然后通过 UDP 流式传输。然后在另一台电脑上接收并保存。执行 PSNR。
编码工作正常,但是当我尝试流式传输时出现错误:
[mpegts @ 00000000050b0520] HEVC 比特流错误,缺少起始码,大小 1436 数据 00000100
- 第 1 步 - 编码:
ffmpeg -re -i test.ts -r 25 -b:v 2500k -preset medium -c:v libx265 -x265-params crf=27 -y -f mpegts test1.ts
没有错误,一切正常。
- 第 2 步 - 流式传输:
缺少启动代码。
ffmpeg -re -i test1.ts -c copy -f mpegts udp://172.18.60.47:1234
ffmpeg version N-68441-g4fa42e0 Copyright (c) 2000-2014 the FFmpeg developers
built on Dec 14 2014 22:13:03 with gcc 4.9.2 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnut
le-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --e
modplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsc
r --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-
--enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-decklink --enable-zl
libavutil 54. 15.100 / 54. 15.100
libavcodec 56. 14.100 / 56. 14.100
libavformat 56. 15.105 / 56. 15.105
libavdevice 56. 3.100 / 56. 3.100
libavfilter 5. 3.101 / 5. 3.101
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
Input #0, mpegts, from 'test1.ts':
Duration: 00:00:10.12, start: 1.480000, bitrate: 456 kb/s
Program 1
Metadata:
service_name : Service01
service_provider: FFmpeg
Stream #0:0[0x100]: Video: hevc (Main) ([36][0][0][0] / 0x0024), yuv420p(tv), 1280x720, 25 fps, 25 tbr, 90k tbn, 25 tbc
Output #0, mpegts, to 'udp://172.18.60.47:1234':
Metadata:
encoder : Lavf56.15.105
Stream #0:0: Video: hevc ([36][0][0][0] / 0x0024), yuv420p, 1280x720, q=2-31, 25 fps, 25 tbr, 90k tbn, 25 tbc
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
**[mpegts @ 0000000004ed7320] HEVC bitstream error, startcode missing, size 2462 data 00000102**
[mpegts @ 0000000004ed7320] HEVC bitstream error, startcode missing, size 302 data 00000102
[mpegts @ 0000000004ed7320] HEVC bitstream error, startcode missing, size 134 data 00000100
[mpegts @ 0000000004ed7320] HEVC bitstream error, startcode missing, size 149 data 00000100
[mpegts @ 0000000004ed7320] HEVC bitstream error, startcode missing, size 5107 data 00000102
[mpegts @ 0000000004ed7320] HEVC bitstream error, startcode missing, size 1331 data 00000102
[mpegts @ 0000000004ed7320] HEVC bitstream error, startcode missing, size 341 data 00000100
frame= 8 fps=0.0 q=-1.0 Lsize= 37kB time=00:00:00.24 bitrate=1278.4kbits/s
video:34kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 9.718209%
Received signal 2: terminating.
当我使用 x264 执行上述步骤时,一切正常。我可以流式传输视频,我可以在另一端接收它。知道有什么问题吗?这是一个BUG吗?
x264 的命令:
ffmpeg -re -i test.ts -r 25 -b:v 2500k -preset medium -c:v libx264 -x264-params crf=27 -y -f mpegts test1.ts
ffmpeg -re -i test1.ts -c 复制 -f mpegts udp://172.18.60.47:1234
谢谢您的帮助!!
BR,鲁迪
vlc - 将 h.265 视频编解码器集成到 VLC 播放器中
我的任务是向 VLC 播放器添加新的 h.265 解码器支持。所以我已经下载,在 Ubuntu 14.0 中构建 VLC 源代码,我的解码器将输入作为视频编码文件或 NAL 单元并输出解码图片。但我不明白 VLC 将如何与解码器通信?编写模块的详细步骤是什么?
hevc - (为什么)HM 是否将 CU 细分为具有相同 MV 的 PU?
在调试 HM 16.2 的解码时,我看到 CU 看起来像是被细分为 PU。每个 PU 具有相同的 MV。在 CU 中允许不同的 MV 是我(目前)知道将 CU 拆分为 PU 的唯一原因。
我想知道我是否误解了 CTU 数据结构 ( TComDataCU
)*。谁能帮我这个?您知道将 CU 拆分为 PU 是否还有其他原因?
相关问题:
- 为什么
TComDataCU
拆分 64x64 CTU 会拆分为 256 个部分?(我最初预计会看到 64 个部分,每个最小可能的 8x8 CU 一个部分。现在我假设附加部分允许更小的 PU/TU。) TComMv::getHor()
将其直接解释为 MV 是否正确TCovMv::getVer()
,还是必须合并一些附加信息(例如合并/跳过信息、增量等)才能获得“真实”的 MV?
* 对于TComDataCU*
被叫ctu
,我看到
其中mvf = ctu->getCUMvField(REF_PIC_LIST_0)
(仅使用单预测,使用简单的 GOP:I <- P <- P <- P ...),
将这些观察结果与我的问题联系起来,对于这个 CU,我了解 CU 有两个 PU,包括索引 48,50 和 49,51,例如
所以我期待
为什么两个 PU(看起来)具有相同的 MV?
android - 适用于 HEVC 的 Android 媒体编解码器
我正在研究使用 android MediaCodec 类来解码 HEVC。有没有这样做的项目示例?
目前我使用以下配置解码器:
使用此设置时,我没有视频输出。我也试过分别设置csd-0
,csd-1
和csd-2
到 VPS、SPS 和 PPS,但没有运气。
我在控制台中收到以下错误,但已确定它不相关:
我发现它dequeueOutputBuffer
总是在返回-1
。似乎dequeueInputBuffer
返回的索引queueInputBuffer
在从dequeueOutputBuffer
.
有没有人设法在 Android 上解码 HEVC 视频?
android - Android MediaCodec HEVC 支持的分辨率
有谁知道解码 HEVC 时 Android MediaCodec 支持的分辨率是什么?
通过反复试验,我发现以下工作:
以下内容不会:
有官方文档吗?
hevc - 解析 HEVC 以获取运动信息
我通过简单地识别 sart 代码(000001 或 00000001)来解析 HEVC 流,现在我正在寻找 NAL 有效负载中的运动信息。我的目标是计算流中运动信息的百分比。有任何想法吗?
hevc - 解析非 IDR 帧的 HEVC 流
我用这段代码解析了 HEVC 流(在将字节转换为十六进制格式之后)
但是在查看 NAL 单元类型之后,我可以找到一些保留类型。正常吗?
video - 如何进一步从 HM for HEVC 开始?
我是 HEVC 的新手。我正在研究 HM 软件中的 HEVC。我已经使用 ./TAppEncoder -c encoder_randomaccess.cfg -c xxxx.cfg 成功运行了一个看到 Vcodex.com 的演示。我知道 .cfg 是包含所有详细信息参数的配置文件。
作为 HEVC HM 的新学习者,我的疑问是如何进一步了解如何使用和理解 HEVC 的 HM 软件。
或者,如果我必须做进一步的研究,我应该在哪里做出改变。
android - 在android上解码hevc
我正在尝试使用 android-ffmpeg 在 android 上制作视频播放器,它适用于 avc 流,但无法解码 hevc 流。用android-ffmpeg在android上解码hevc有什么特殊要求吗?
linux-mint - 让 avconv 在 Linux Mint 17.1 上使用 x265
我按照此处的建议从多核软件编译并安装了 x265 编解码器:https : //bitbucket.org/multicoreware/x265/wiki/Home,然后按照此处的建议手动安装了启用 libx265 的 libav:https ://wiki.libav.org/编码/hevc
现在,当我尝试使用avconv
(libav 附带的工具)将 x265 文件转换为其他格式时,它显示此错误:
当我尝试这样做时whereis libx265.so.50
,它给了我这个:
所以,libx265 确实存在,但为什么 avconv/libav 没有检测到它?
更新:
- 或者,您可以简单地回答如何让 x265 与 avconv 一起工作。
- 我的系统规格是:Linux Mint 17.1,基于 Ubuntu 14.04