FFMPEG: кодировать x265, контейнер mpeg2 ts, пропустить STARTCODE
Я пытаюсь закодировать видео с помощью FFMPEG x265, поместить его в MPEG2 TS и затем передать его по UDP. Затем получите на другом ПК и сохраните его. Выполнить PSNR.
Кодировка работает нормально, но при попытке потоковой передачи выдает ошибку:
[mpegts @ 00000000050b0520] Ошибка потока битов HEVC, отсутствует стартовый код, размер 1436, данные 00000100
- Шаг 1 - Кодировка:
ffmpeg -re -i test.ts -r 25 -b: v 2500k -предустановленная среда -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 все работает нормально. I can stream the video and I can receive it on the other side. Есть идеи, что не так? Это ошибка?
Commands for 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 copy -f mpegts udp://172.18.60.47:1234
Спасибо за помощь!!
BR, Rudi