Hello,
Looking for assistance on this issue I am struggling with. I am trying to take
a live OTA stream (free-to-air broadcast) and transcode it (using Nvidia Quadro
p2000 card) from mpeg2ts and ac3 to h264 and AAC. I need the output to be in 3
separate bitrates and in UDP multicast format. Here is the source stream from
ffprobe output (also gives you my version number for ffmpeg).
==========Source:
gpu-transcoder:~$ ffprobe udp://@239.1.1.92:59092
ffprobe version N-93005-gd92f06e Copyright (c) 2007-2019 the FFmpeg developers
built with gcc 7 (Ubuntu 7.3.0-27ubuntu1~18.04)
configuration: --prefix=/home/circle/ffmpeg_build --pkg-config-flags=--static
--extra-cflags=-I/home/circle/ffmpeg_build/include
--extra-ldflags=-L/home/circle/ffmpeg_build/lib --extra-libs='-lpthread -lm'
--bindir=/home/circle/bin --enable-gpl --enable-libaom --enable-libass
--enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus
--enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265
--enable-nonfree --enable-nvenc
libavutil 56. 26.100 / 56. 26.100
libavcodec 58. 44.100 / 58. 44.100
libavformat 58. 26.100 / 58. 26.100
libavdevice 58. 6.101 / 58. 6.101
libavfilter 7. 48.100 / 7. 48.100
libswscale 5. 4.100 / 5. 4.100
libswresample 3. 4.100 / 3. 4.100
libpostproc 55. 4.100 / 55. 4.100
[mpeg2video @ 0x5582ad6afa40] Invalid frame dimensions 0x0.
Last message repeated 19 times
Input #0, mpegts, from 'udp://@239.1.1.92:59092':
Duration: N/A, start: 73120.077033, bitrate: N/A
Program 3
Stream #0:0[0x31]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002),
yuv420p(tv, bt709, top first), 1920x1080 [SAR 1:1 DAR 16:9], Closed Captions,
29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
Stream #0:1[0x34](eng): Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz,
5.1(side), fltp, 384 kb/s
Stream #0:2[0x35](spa): Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz,
stereo, fltp, 96 kb/s (visual impaired)
==========So here is the command that I am using for the transcode:
ffmpeg -i 'udp://@239.1.1.92:59092?fifo_size=1000000&overrun_nonfatal=1' \
-c:v h264_nvenc -x264opts keyint=120:no-scenecut -b:v 6000k -minrate 6000k
-maxrate 6000k -bufsize 12000k -profile:v high -level 4.0 -c:a aac -f mpegts
udp://@239.129.2.220:59220 \
-c:v h264_nvenc -x264opts keyint=120:no-scenecut -b:v 3500k -minrate 3500k
-maxrate 3500k -bufsize 9000k -profile:v high -level 4.0 -c:a aac -f mpegts
udp://@239.129.2.221:59221 \
-c:v h264_nvenc -x264opts keyint=120:no-scenecut -b:v 1500k -minrate 1500k
-maxrate 1500k -bufsize 3000k -profile:v high -level 4.0 -c:a aac -f mpegts
udp://@239.129.2.222:59222
==========Here is the output while the command is running:
gpu-transcoder:~$ ffmpeg -i
'udp://@239.1.1.92:59092?fifo_size=1000000&overrun_nonfatal=1' -c:v h264_nvenc
-x264opts keyint=120:no-scenecut -b:v 6000k -minrate 6000k -maxrate 6000k
-bufsize 12000k -profile:v high -level 4.0 -c:a aac -f mpegts
udp://@239.129.2.220:59220 -c:v h264_nvenc -x264opts keyint=120:no-scenecut
-b:v 3500k -minrate 3500k -maxrate 3500k -bufsize 9000k -profile:v high -level
4.0 -c:a aac -f mpegts udp://@239.129.2.221:59221 -c:v h264_nvenc -x264opts
keyint=120:no-scenecut -b:v 1500k -minrate 1500k -maxrate 1500k -bufsize 3000k
-profile:v high -level 4.0 -c:a aac -f mpegts udp://@239.129.2.222:59222
ffmpeg version N-93005-gd92f06e Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 7 (Ubuntu 7.3.0-27ubuntu1~18.04)
configuration: --prefix=/home/circle/ffmpeg_build --pkg-config-flags=--static
--extra-cflags=-I/home/circle/ffmpeg_build/include
--extra-ldflags=-L/home/circle/ffmpeg_build/lib --extra-libs='-lpthread -lm'
--bindir=/home/circle/bin --enable-gpl --enable-libaom --enable-libass
--enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus
--enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265
--enable-nonfree --enable-nvenc
libavutil 56. 26.100 / 56. 26.100
libavcodec 58. 44.100 / 58. 44.100
libavformat 58. 26.100 / 58. 26.100
libavdevice 58. 6.101 / 58. 6.101
libavfilter 7. 48.100 / 7. 48.100
libswscale 5. 4.100 / 5. 4.100
libswresample 3. 4.100 / 3. 4.100
libpostproc 55. 4.100 / 55. 4.100
[mpeg2video @ 0x564c01e22f40] Invalid frame dimensions 0x0.
Last message repeated 29 times
Input #0, mpegts, from
'udp://@239.1.1.92:59092?fifo_size=1000000&overrun_nonfatal=1':
Duration: N/A, start: 73483.943033, bitrate: N/A
Program 3
Stream #0:0[0x31]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002),
yuv420p(tv, bt709, top first), 1920x1080 [SAR 1:1 DAR 16:9], Closed Captions,
29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
Stream #0:1[0x34](eng): Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz,
5.1(side), fltp, 384 kb/s
Stream #0:2[0x35](spa): Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz,
stereo, fltp, 96 kb/s (visual impaired)
Codec AVOption x264opts (x264 options) specified for output file #0
(udp://@239.129.2.220:59220) has not been used for any stream. The most likely
reason is either wrong type (e.g. a video option with no video streams) or that
it is a private option of some encoder which was not actually used for any
stream.
Codec AVOption x264opts (x264 options) specified for output file #1
(udp://@239.129.2.221:59221) has not been used for any stream. The most likely
reason is either wrong type (e.g. a video option with no video streams) or that
it is a private option of some encoder which was not actually used for any
stream.
Codec AVOption x264opts (x264 options) specified for output file #2
(udp://@239.129.2.222:59222) has not been used for any stream. The most likely
reason is either wrong type (e.g. a video option with no video streams) or that
it is a private option of some encoder which was not actually used for any
stream.
Stream mapping:
Stream #0:0 -> #0:0 (mpeg2video (native) -> h264 (h264_nvenc))
Stream #0:1 -> #0:1 (ac3 (native) -> aac (native))
Stream #0:0 -> #1:0 (mpeg2video (native) -> h264 (h264_nvenc))
Stream #0:1 -> #1:1 (ac3 (native) -> aac (native))
Stream #0:0 -> #2:0 (mpeg2video (native) -> h264 (h264_nvenc))
Stream #0:1 -> #2:1 (ac3 (native) -> aac (native))
Press [q] to stop, [?] for help
[aac @ 0x564c01e85080] Using a PCE to encode channel layout "5.1(side)"
[aac @ 0x564c023e04c0] Using a PCE to encode channel layout "5.1(side)"
[aac @ 0x564c01e86980] Using a PCE to encode channel layout "5.1(side)"
Output #0, mpegts, to 'udp://@239.129.2.220:59220':
Metadata:
encoder : Lavf58.26.100
Stream #0:0: Video: h264 (h264_nvenc) (High), yuv420p, 1920x1080 [SAR 1:1
DAR 16:9], q=-1--1, 6000 kb/s, 29.97 fps, 90k tbn, 29.97 tbc
Metadata:
encoder : Lavc58.44.100 h264_nvenc
Side data:
cpb: bitrate max/min/avg: 6000000/0/6000000 buffer size: 12000000
vbv_delay: -1
Stream #0:1(eng): Audio: aac (LC), 48000 Hz, 5.1(side), fltp, 394 kb/s
Metadata:
encoder : Lavc58.44.100 aac
Output #1, mpegts, to 'udp://@239.129.2.221:59221':
Metadata:
encoder : Lavf58.26.100
Stream #1:0: Video: h264 (h264_nvenc) (High), yuv420p, 1920x1080 [SAR 1:1
DAR 16:9], q=-1--1, 3500 kb/s, 29.97 fps, 90k tbn, 29.97 tbc
Metadata:
encoder : Lavc58.44.100 h264_nvenc
Side data:
cpb: bitrate max/min/avg: 3500000/0/3500000 buffer size: 9000000
vbv_delay: -1
Stream #1:1(eng): Audio: aac (LC), 48000 Hz, 5.1(side), fltp, 394 kb/s
Metadata:
encoder : Lavc58.44.100 aac
Output #2, mpegts, to 'udp://@239.129.2.222:59222':
Metadata:
encoder : Lavf58.26.100
Stream #2:0: Video: h264 (h264_nvenc) (High), yuv420p, 1920x1080 [SAR 1:1
DAR 16:9], q=-1--1, 1500 kb/s, 29.97 fps, 90k tbn, 29.97 tbc
Metadata:
encoder : Lavc58.44.100 h264_nvenc
Side data:
cpb: bitrate max/min/avg: 1500000/0/1500000 buffer size: 3000000
vbv_delay: -1
Stream #2:1(eng): Audio: aac (LC), 48000 Hz, 5.1(side), fltp, 394 kb/s
Metadata:
encoder : Lavc58.44.100 aac
frame= 7165 fps= 30 q=19.0 Lq=23.0 q=28.0 size= 201697kB time=00:04:00.34
bitrate=6874.9kbits/s speed=1.02x
=============Here is an ffprobe on one of the streams that I am outputting
[minus some of the h264@ lines that repeated several times before probe
completed]:
gpu-transcoder:~$ ffprobe udp://@239.129.2.220:59220
ffprobe version N-93005-gd92f06e Copyright (c) 2007-2019 the FFmpeg developers
built with gcc 7 (Ubuntu 7.3.0-27ubuntu1~18.04)
configuration: --prefix=/home/circle/ffmpeg_build --pkg-config-flags=--static
--extra-cflags=-I/home/circle/ffmpeg_build/include
--extra-ldflags=-L/home/circle/ffmpeg_build/lib --extra-libs='-lpthread -lm'
--bindir=/home/circle/bin --enable-gpl --enable-libaom --enable-libass
--enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus
--enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265
--enable-nonfree --enable-nvenc
libavutil 56. 26.100 / 56. 26.100
libavcodec 58. 44.100 / 58. 44.100
libavformat 58. 26.100 / 58. 26.100
libavdevice 58. 6.101 / 58. 6.101
libavfilter 7. 48.100 / 7. 48.100
libswscale 5. 4.100 / 5. 4.100
libswresample 3. 4.100 / 3. 4.100
libpostproc 55. 4.100 / 55. 4.100
[h264 @ 0x56353920abc0] SPS unavailable in decode_picture_timing
[h264 @ 0x56353920abc0] non-existing PPS 0 referenced
[h264 @ 0x56353920abc0] SPS unavailable in decode_picture_timing
[h264 @ 0x56353920abc0] non-existing PPS 0 referenced
[h264 @ 0x56353920abc0] decode_slice_header error
[h264 @ 0x56353920abc0] no frame!
[mpegts @ 0x5635391b1500] decoding for stream 0 failed
[mpegts @ 0x5635391b1500] decoding for stream 1 failed
[mpegts @ 0x5635391b1500] Could not find codec parameters for stream 0 (Video:
h264 ([27][0][0][0] / 0x001B), none): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[mpegts @ 0x5635391b1500] Could not find codec parameters for stream 1 (Audio:
aac (LC) ([15][0][0][0] / 0x000F), 0 channels, fltp, 407 kb/s): unspecified
sample rate
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, mpegts, from 'udp://@239.129.2.220:59220':
Duration: N/A, start: 61.453333, bitrate: N/A
Program 1
Metadata:
service_name : Service01
service_provider: FFmpeg
Stream #0:0[0x100]: Video: h264 ([27][0][0][0] / 0x001B), none, 29.97 fps,
29.97 tbr, 90k tbn, 180k tbc
Stream #0:1[0x101](eng): Audio: aac (LC) ([15][0][0][0] / 0x000F), 0
channels, fltp, 407 kb/s
The problem that I am having is our monitoring shows a large amount of errors
and discontinuities in the output stream. When I try to play a clip that I save
in VLC there is no content, no messages and no length to the video. If I try to
play it in vlc from the command line using the ASCII text player (vlc
udp://@239.129.2.220:59220 -V aa) I see these warnings “1316 bytes truncated
(MTU was 1316)” and no video.
System is an Ubuntu 18.04 install with CUDA 10 installed. It does not look like
any of the system resources are bad and I am pulling the clips from the
transcoder so I am not having a network issue that is inducing discontinuities
which also would not explain the stream errors.
=========Nvidia cad information with nothing running atm:
gpu-transcoder:~$ nvidia-smi
Sat Feb 2 00:51:36 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.48 Driver Version: 410.48 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Quadro P2000 Off | 00000000:03:00.0 Off | N/A |
| 52% 27C P0 18W / 75W | 0MiB / 5059MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
Any thoughts on how to correct this. I feel like there is something in my
command that is fundamentaly off so I am hoping this is an easy one. Again I am
using nvenc for the transcoding. Anything else that you need to assist, just
ask.
Thoughts?
Thanks in advance,
Jimbo
CONFIDENTIALITY NOTICE: This e-mail including attachments is covered by the
Electronic Communications Privacy Act, 18 U.S.C. §§2510-2521, is confidential
and may contain information that is privileged, confidential or otherwise
protected from use and disclosure. If you are not the intended recipient, you
are hereby notified that any review, disclosure, copying, or dissemination of
this transmission, or taking of any action in reliance on its contents, or
other use is strictly prohibited. If you have received this transmission in
error, please reply to the sender listed above immediately and permanently
delete this message from your inbox.
_______________________________________________
ffmpeg-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/ffmpeg-user
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".