Code Monkey home page Code Monkey logo

openvisualcloud / cdn-transcode-sample Goto Github PK

View Code? Open in Web Editor NEW
118.0 118.0 37.0 3.2 MB

Media transcoding is a key function for live video broadcasting, streaming, and video on demand use cases in a CDN network. The CDN Transcode sample (not a finished product) provides a reference pipeline to build an out-of-box 1:N CDN streaming transcode service example.

License: Other

CMake 3.01% Dockerfile 3.88% Shell 23.13% Python 24.81% XSLT 9.08% Batchfile 1.69% CSS 14.91% HTML 0.71% JavaScript 5.11% M4 12.58% Awk 1.09%
dash docker ffmpeg hls msdk nginx svt

cdn-transcode-sample's People

Contributors

czhou26 avatar dpatel257 avatar fruitboy1226 avatar jhou5 avatar meiyanz avatar mingwu123123 avatar sfblackl-intel avatar tangzhizhen avatar xwu2git avatar xwu2intel avatar yingxgu avatar ywu75 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cdn-transcode-sample's Issues

[Stress]Video freeze when using VLC and FFPLAY to playback the streaming SVT-HEVC clip with DASH

Describe the bug
While using local stream as input to do SVT-HEVC transcoding with ffmpeg, and config output as streaming with DASH, then use VLC or FFPLAY to playback the generated segment file index.mpd, we found video freeze after playing some time with VLC or FFPLAY.

We tried 3 times with VLC about this issue:
1st time used about 3 minutes
2nd time used about 5 minutes
3rd time used about 5+ hours

While the issue happened, both VLC and FFPLAY print error info in terminal, please see below pictures for detail.
VLC error info:
image
FFPLAY error info:
image

To Reproduce
Steps to reproduce the behavior:

  1. Setup the test environment based on the guide.
  2. Run below command line to do transcoding to SVT-HEVC (make sure add parameter "-stream_loop -1" to loop input stream):
    ffmpeg -re -stream_loop -1 -i Nature.mp4 -s 40962160 -c:a copy -c:v libsvt_hevc -b:v 20M -f flv rtmp://nginx_ip1/dash/4kCamera -s 40962160 -c:a copy -c:v libsvt_hevc -f flv rtmp://nginx_ip2/dash/2kCamera
  3. Run below command to use VLC and FFPLAY playback:
    ffplay http://host_ip:port_ID/dash/4kCamera/index.mpd
    vlc http://host_ip:port_ID/dash/4kCamera/index.mpd

Expected behavior
Video playback should be smooth, no freeze and no error.

DASH manifest wrongly generated

Bug description
The manifest index.mpd generated by the transcoding process does not allow automatic switching in resolutions because it is badly formed.
This issue is written after making sure #10 and #19 and #26 didn't cover it.

To Reproduce
Steps to reproduce the behavior:

  1. Set up the vod transcode service (example)
  2. Start a DASH stream to begin the transcoding process (from the web GUI, for instance)
  3. On the deployment server (host), inspect the generated manifest. From the repository folder : less volume/dash/<stream_name>/index.mpd

Expected behavior
The manifest should contain one single <AdaptationSet>...</AdaptationSet> tag with the attribute contentType="video", containing all the <Representation>...</Representation> tags, each corresponding to a resolution. This is not the case as it has one <AdaptationSet>...</AdaptationSet> per resolution, each containing a single <Representation>...</Representation>. This results in not being able to switch automatically when ABR logic would need it.

You can test in depth the ABR behaviour with this standard DASH player. Give it a URL formed this way: https://<host IP>/dash/<stream_name>/index.mpd.

Screenshots
DASH manifest screenshot

Server:

  • OS: Ubuntu Server 18.04
  • Configuration process: Described here
  • Version: 63e4b85

Additional context
We forked your project for a small college research on edge-computing (more info). Solving this issue is a matter of efficiency as we need to correct the manifest by hand every time.

ffplay and VLC can't play x265 clips with HTTP which is generated in xcode server

Describe the bug
Using 1 xcode server + 1 cdn server to do H264/MPEG2 transcoding to x265, the transcoding is ok and the output file index.m3u8 or index.mpd is also generated with normal size, but while using ffplay or VLC to play the x265 clips with HLS or DASH, there will be no output in screen and error log is printed by ffplay.

Command line and Log information from FFPLAY:
command:
ffplay http://host_ip:port_id/hls/4kCamera/index.m3u8
Log:
ffplay version 4.1 Copyright (c) 2003-2018 the FFmpeg developers
built with gcc 7 (Ubuntu 7.3.0-27ubuntu1~18.04)
configuration:
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
[hls,applehttp @ 0x7f803c000b80] Opening 'http://host_ip:port_id/hls/4kCamera/0.ts' for reading
[NULL @ 0x7f803c025dc0] PPS id out of range: 0
[hevc @ 0x7f803c027a00] PPS id out of range: 0
[hevc @ 0x7f803c027a00] Error parsing NAL unit #1.
[NULL @ 0x7f803c025dc0] PPS id out of range: 0
[hevc @ 0x7f803c027a00] PPS id out of range: 0
[hevc @ 0x7f803c027a00] Error parsing NAL unit #1.
[NULL @ 0x7f803c025dc0] PPS id out of range: 0
[hevc @ 0x7f803c027a00] PPS id out of range: 0
[hevc @ 0x7f803c027a00] Error parsing NAL unit #1.
[NULL @ 0x7f803c025dc0] PPS id out of range: 0
[hevc @ 0x7f803c027a00] PPS id out of range: 0
[hevc @ 0x7f803c027a00] Error parsing NAL unit #1.
[NULL @ 0x7f803c025dc0] PPS id out of range: 0
[hevc @ 0x7f803c027a00] PPS id out of range: 0

NOTE: If streaming output x265 stream with RTMP during transcoding, then use ffplay to playback with RTMP, the output is ok but has about 15s delay; If play with VLC also no output in screen.

To Reproduce
Steps to reproduce the behavior:

  1. Run transcode command in xcode server: ffmpeg -re -stream_loop -1 -i /var/www/Mpeg2_1080.m2v -c:v libx265 -s 4096x2160 -f flv rtmp://ngnix_id:port_id/hls/4kCamera
  2. Run ffplay (with HEVC enabled patch) command in another Linux machine:
    ffplay http://host_ip:port_id/hls/4kCamera/index.m3u8 or play with VLC on your windows PC.

Expected behavior
Video should be played smoothly with FFPLAY or VLC, no error and no delay.

Feature request to support HTTP-FLV

Use HTTP-FLV to delivery live stream in flv format over HTTP, which could traverse firewall and meanwhile provide lower latency than DASH/HLS. It's a very common in China.

Segment ts files deletion speed is faster than index.m3u8 updated speed that caused the output stream can’t be played when the input is IP camera.

[Issue Description]
When use IP camera stream as input to do SVT-HEVC transcoding with ffmpeg, the output stream can’t be played after about three minutes of transcoding.
The error message of VLC is "Failed reading https://host IP/hls/4kStream/0.ts: HTTP/1.1 404 Not Found", please refer to VCL.png attach file for
details.
After checking index.m3u8 file, it was found that Segment ts files deletion speed is faster than index.m3u8 updated speed.Please refer to ts.png attach file for details.
The issue only can't be reproduced on E3 server and VCA2 server.

[Reproduce Steps]

  1. Setup 1toN Xcode Sample test environment based on the guide (CDN_Transcode_Sample_Getting_Started_Guide.md).
  2. Run below command line to do transcoding:
    ffmpeg -i rtsp://admin:password@IP cameras/101 -s 40962160 -c:a copy -c:v libsvt_hevc -f flv rtmp://CDN IP/hls/4kStream -s 20481024 -c:a copy -c:v libsvt_hevc -f flv rtmp://CDN IP/hls/2kStream -s 19201080 -c:a copy -c:v libsvt_hevc -f flv rtmp://CDN IP/hls/1080Stream -s 1080720 -c:a copy -c:v libsvt_hevc -f flv rtmp://CDN IP/hls/720Stream -s 720480 -c:a copy -c:v libsvt_hevc -f flv rtmp://CDN IP/hls/480Stream -s 320240 -c:a copy -c:v libsvt_hevc -f flv rtmp://CDN IP/hls/240Stream
  3. Run below command to use VLC playback after about three minutes.
    vlc https://host IP/hls/4kStream/index.m3u8
  4. Check Segment ts files and index.m3u8 file under /var/www/hls/4kStream

[Actual Phenomenon]

  1. The output stream can’t be played.
  2. Segment ts files deletion speed is faster than index.m3u8 updated speed.

ts
VLC

Could it be used in production environments?

Hello! I found this project very interesting and useful!

Could it be used in production environments?

We have an initiative of a Digital Streaming platform, #CinelarTV

And I think this could benefit us a lot

[Bug]Live video play with libsvt_av1 hd2k would stuck sometimes and cannot recover

test information:
1.cdn version: 4.0
2.allocation test, ffmpeg command:
ffmpeg -re -stream_loop -1 -i /var/www/archive/bbb_sunflower_1080p_30fps_normal.mp4
-vf scale=2560:1440 -c:v libsvt_hevc -b:v 10M -g 32 -forced-idr 1 -thread_count
96 -an -f flv rtmp://cdn-service/dash/aaa_0_0
-vf scale=2560:1440 -c:v libsvt_av1 -b:v 10M -g 32 -forced-idr 1 -thread_count
96 -an -f flv rtmp://cdn-service/dash/bbb_0_1
-abr_pipeline
3.the live pod is alive and the cache files add normally.
4.cpu request:32794.0m, memory request:12746.0Mi
5.reopen the url in vlc, the video can paly normally.
6.the phenomenon can be repeated many times.
7.stuck live: av1-2k-dash
8.sometimes the transcode process would be reset

most browser can't support stream playback for HEVC format with HLS or DASH.

Describe the problem which need help
1to1 transcoding Video on demand function with browser playback.

To Reproduce

  1. If input streaming mode is live, run below command on streaming server:
    ffmpeg -re -stream_loop 500 -i /data/www/file/Nature.mp4 -c:v copy -an -f flv rtmp://10.67.117.70/live/Nature.mp4
  2. Live playback in client browser: Access URL:http://10.67.116.179/ with browser.
  3. if the media stream was transcoded to H264/MPEG2, playback is normally.
  4. if the media stream was transcoded HEVC, video can't show with IE, Chroma, safari etc. only find one Samsung cellphone with Samsung browser can playback HEVC with HLS .

help needed
if there any patch or version if the web browser which can support HLS and DASH with HEVC format?

starting live transcore docker

when i try to create the live transcode docker instance, the terminal signals an error:
"Unable to find image 'ovc_transcode_service:latest' locally"

Steps to reproduce the behavior:

  1. Go to manual deploy
  2. Click on "Start live transcode docker"
  3. on the terminal, run the command: "docker run -it --network=my_bridge --ip 192.168.31.32 --name live-transcode-service -v /var/www/dash:/var/www/dash -v /var/www/hls:/var/www/hls ovc_transcode_service /bin/bash"

what is expected is the container ID created

CDN-Transcode-Sample get fail info and exit after do transcoding to SVT-HEVC about 90 frames when set 3 streaming output as 4k with RTMP/HLS/DASH

Describe the bug
Live streaming with 1 xcode + 1 cdn docker and do transcoding to SVT-HEVC, then config 3 streaming output as 4k resolution with RTMP or HLS or DASH, the xcode Sample (ffmpeg) will get fail info and exit after transcoding about 90 frames.
In our side, the issue has about 80% reproducing rate.
The detail fail info in xcode server as below:
[flv @ 0x55b8be882440] Failed to update header with correct duration.
[flv @ 0x55b8be882440] Failed to update header with correct filesize.
[flv @ 0x55b8be881640] Failed to update header with correct duration.
[flv @ 0x55b8be881640] Failed to update header with correct filesize.
[flv @ 0x55b8be8f4480] Failed to update header with correct duration.
[flv @ 0x55b8be8f4480] Failed to update header with correct filesize.
frame= 152 fps=9.7 q=-0.0 Lq=-0.0 q=-0.0 size= 686kB time=00:00:04.77 bitrate=1178.0kbits/s speed=0.305x
video:1988kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

NOTE: This issue may be blocked by known issue #30.

To Reproduce
Steps to reproduce the behavior:

  1. Streaming input in one cdn server: ffmpeg -re -stream_loop -1 -i input_clip_name -c:v copy -c:a copy -f flv rtmp://ngnix_ip1:port_id1/stream/nature
  2. Run transcoding command in xcode server: ffmpeg -i rtmp://ngnix_ip1:port_id1/stream/nature -s 4096x2160 -c:a copy -c:v libsvt_hevc -f flv rtmp://ngnix_ip2:port_id2/hls/4kCamera -s 4096x2160 -c:a copy -c:v libsvt_hevc -f flv rtmp://ngnix_ip2:port_id2/hls/4kCamera_1 -s 4096x2160 -c:a copy -c:v libsvt_hevc -f flv rtmp://ngnix_ip2:port_id2/hls/4kCamera_2

Expected behavior
Transcoding should be no error, no hang, and the output video should be play in normal.

[Bug]vod and av1 live play failed

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Output stream only have one Representation (one video) in AdaptationSet of DASH if use ffmpeg rtmp sending the Xcode stream to Nignix server for Dash segment.

Describe the bug
Output stream of CDN-Transcoding sample only have one Representation (one video) in AdaptationSet of DASH if use ffmpeg rtmp sending the stream to Nginx server for Dash segment.

To Reproduce

  1. complete 1toN transcoding with Nignx docker setup according to readme.
    start 1: xeon-ubuntu1804-ffmpeg:1.0 docker to complete transcoding task.
    start 2: xeon-ubuntu1804-nginx-rtmp:1.0 docker to complete Dash segment.

  2. input streaming as:
    root@f1ac23ac6f74:/media/_System_Validation# ffmpeg -re -i /media/_System_Validation/mp4_h264aac/h264_1920x1080_b@40_2397_8225kbps_cbr_aac_lc_256kbps_48000_hd_the_living_see_2mn48s.mp4 -c:v copy -f flv rtmp://192.168.31.32/stream/xcode

  3. Xcode server to do transcoding and rtmp upstreaming to nginx server:
    transcoding (xeon-ubuntu1804-ffmpeg:1.0 docker) -> DASH segement MPD file (xeon-ubuntu1804-nginx-rtmp:1.0 docker )
    command as:
    ffmpeg -i rtmp://192.168.31.32/stream/xcode -c:a copy -c:v libsvt_hevc -f flv rtmp://192.168.31.31/dash/hevc

  4. only have one video in MPD file. (xeon-ubuntu1804-nginx-rtmp:1.0 docker )
    only one stream is supported in flv format.

Expected behavior
need multi-video in DASH MPD with different resolution and bitrate to adapt different network situation.
Additional context
just link use ffmpeg command line to achieve multi-video :

root@1fb8d4cd2580:/media/dash# ffmpeg -i rtmp://192.168.31.32/stream/xcode -filter_complex 'split=2[s0][s1];[s0]scale=480:-2[480s];[s1]scale=1080:-2[1080s]' -map '[480s]' -c:v:0 libsvt_hevc -map '[1080s]' -c:v:1 libsvt_hevc -map a -c:a:0 copy -ar:a:0 22050 -map a -c:a:1 copy -ar:a:1 44100 -g 150 -sc_threshold 0 -b_strategy 0 -min_seg_duration 5000 -use_timeline 0 -use_template 1 -single_file 1 -window_size 5 -adaptation_sets "id=0,streams=v id=1,streams=a" -f dash /media/dash/hevc_audiocopy.mpd 

[Bug]live url open error, access error: http 503 error

live file list:
7146667.m4a 7163733.m4v 7185067.m4a 7202133.m4v 7223467.m4a 7240533.m4v 7261867.m4a 7278933.m4v 7300267.m4a 7317333.m4v 7338667.m4a 7355733.m4v
7146667.m4v 7168000.m4a 7185067.m4v 7206400.m4a 7223467.m4v 7244800.m4a 7261867.m4v 7283200.m4a 7300267.m4v 7321600.m4a 7338667.m4v index.mpd
7150933.m4a 7168000.m4v 7189333.m4a 7206400.m4v 7227733.m4a 7244800.m4v 7266133.m4a 7283200.m4v 7304533.m4a 7321600.m4v 7342933.m4a index.seg
7150933.m4v 7172267.m4a 7189333.m4v 7210667.m4a 7227733.m4v 7249067.m4a 7266133.m4v 7287467.m4a 7304533.m4v 7325867.m4a 7342933.m4v init.m4a
7155200.m4a 7172267.m4v 7193600.m4a 7210667.m4v 7232000.m4a 7249067.m4v 7270400.m4a 7287467.m4v 7308800.m4a 7325867.m4v 7347200.m4a init.m4v
7155200.m4v 7176533.m4a 7193600.m4v 7214933.m4a 7232000.m4v 7253333.m4a 7270400.m4v 7291733.m4a 7308800.m4v 7330133.m4a 7347200.m4v raw.m4a
7159467.m4a 7176533.m4v 7197867.m4a 7214933.m4v 7236267.m4a 7253333.m4v 7274667.m4a 7291733.m4v 7313067.m4a 7330133.m4v 7351467.m4a raw.m4v
7159467.m4v 7180800.m4a 7197867.m4v 7219200.m4a 7236267.m4v 7257600.m4a 7274667.m4v 7296000.m4a 7313067.m4v 7334400.m4a 7351467.m4v
7163733.m4a 7180800.m4v 7202133.m4a 7219200.m4v 7240533.m4a 7257600.m4v 7278933.m4a 7296000.m4v 7317333.m4a 7334400.m4v 7355733.m4a

kubectl log cdn-service-58cddddfd-n7sx2:
send content_provider_sched:
hls/output_name_0_0/index.m3u8
request received to process stream: hls/output_name_0_0/index.m3u8
[I 191224 08:21:26 kafka:406] Closing the Kafka producer with 999999999 secs timeout.
[I 191224 08:21:31 kafka:400] Kafka producer closed
[E 191224 08:21:31 web:2064] 503 GET /schedule/hls/output_name_0_0/index.m3u8 (127.0.0.1) 5036.74ms

Error "av_interleaved_write_frame(): Broken pipe" occurred and make transcoding app exit when do transcoding with DASH/HLS/RTMP

Describe the bug
While use such user case "1 xcode + 1 cdn docker + 1 4k streaming output + Dash/HLS/RTMP" to do transcoding, error "av_interleaved_write_frame(): Broken pipe" is printed after do transcoding about 40 frames, transcoding app FFMPEG exit.

Try several different combinations, the detail result as below table:

Input Transcode + Output Result
Local Xcode + Local Pass
Local Xcode + CDN DASH Streaming Fail
Host Streaming Xcode + CDN DASH Streaming Fail
Host Streaming Host + Host local Pass
Host Streaming Host + Host DASH Streaming Pass (libx264)
CDN Server Streaming Host + Host DASH Streaming Pass (libx264)
CDN Server Streaming Host + CDN DASH Streaming Fail (libx264)
CDN Server Streaming Xcode + Local Fail on other known issue
CDN Server Streaming Xcode + CDN DASH Streaming Fail (libx264 & svt-hevc)

To Reproduce
Steps to reproduce the behavior:

  1. Streaming input in one cdn server: ffmpeg -re -stream_loop -1 -i input_clip_name -c:v copy -c:a copy -f flv rtmp://nginx_ip_1:port_ID_1/stream/nature
  2. Run transcoding command in xcode server: ffmpeg -i rtmp://nginx_ip_1:port_ID_1/stream/nature -s 4096x2160 -c:a copy -c:v libsvt_hevc -f flv rtmp://nginx_ip_2:port_ID_2/dash/4kCamera

[Bug]Prometheus expression error

node expression error:
1.memory and cpu values are not equal to command "kubectl top node".
2.memory and cpu values of master node are equal to sub node's values, but in fact they are not.
pod expression error:
1.redis pod‘s memory value is not equal to command "kubectl top pod".

[OVC CDN-Transcode-Sample][Live]Stream cannot be played by VLC player after transcoding with HLS and DASH

[Test Environment]
Platform: SKL E5
CPU: Intel(R) Xeon(R) Gold 6152 CPU @ 2.10GHz
OS: Ubuntu 18.04.2 LTS
OVC CommintID: 6bc8288

[Issue Description]
While do manual deployment and transcoding, we found stream cannot be played by VLC player after transcoding with HLS and DASH

[Steps to Reproduce
1.Install Ubuntu 18.04.2 LTS on SKL E5 server
2.Set up enviroment refer to Manual deployment part in “CDN_Transcode_Sample_Getting_Started_Guide.md” document in release package.
3.Run below commands on live transcode docker instance:
For Dash:
ffmpeg -i rtmp:/live/bbb_sunflower_1080p_30fps_normal -vf scale=1920:1080 -c:v libsvt_hevc -b:v 8M -f flv
rtmp://cdn-service/dash/big_buck_bunny_hi -vf scale=1280:720 -c:v libsvt_hevc -b:v 4M -f flv
rtmp://cdn-service/dash/big_buck_bunny_mid -vf scale=854:480 -c:v libsvt_hevc -b:v 2M -f flv
rtmp://cdn-service/dash/big_buck_bunny_low -abr_pipeline

For HLS:
ffmpeg -i rtmp:/live/bbb_sunflower_1080p_30fps_normal -vf scale=1920:1080 -c:v libsvt_hevc -b:v 8M -f flv
rtmp://cdn-service/hls/big_buck_bunny_hi -vf scale=1280:720 -c:v libsvt_hevc -b:v 4M -f flv
rtmp://cdn-service/hls/big_buck_bunny_mid -vf scale=854:480 -c:v libsvt_hevc -b:v 2M -f flv
rtmp://cdn-service/hls/big_buck_bunny_low -abr_pipeline

4.Use VLC player to play the stream on Client
For Dash:
vlc https:///dash/big_buck_bunny.mpd

For HLS:
vlc https:///hls/big_buck_bunny_hi/index.m3u8

[Expected Phenomenon]
The transcoding stream can play normally

[Actual Phenomenon]
The stream cannot be played by VLC player

Remarks:
Stream can played by ffplay player with HLS, but DASH Can't.
hls_vlc
vlc_dash_2

Video play with libsvt_hevc is stuck when play more then 7 hours

Issue Description:
While using local stream as input (Intelligent.mp4 we used) to do SVT-HEVC transcoding with ffmpeg, and cofnig output as streaming with HLS (command line copied below), then use VLC or FFPLAY to playback the generated split file index.m3u8, the Intelligent_1920x1080 will be play stuck when play more then 7 hours.
HTTP-HLS output Intelligent_1280x720 show normally after do reload at VLC side, but the Intelligent_1920x1080 will still be stuck next frame after reload, VLC error log show as screenshot attached. After reset Nginx, playback is normal.

Reproduce Steps:

  1. Setup v0.3 1toN Xcode Sample test environment based on the guide (CDN_Transcode_Sample_Getting_Started_Guide.md) in the E5 server.
  2. Run following three command lines were tried as required, and the results were the same.
    ffmpeg -re -stream_loop -1 -i /var/share/Intelligent.mp4 -vf scale=1920:1080 -c:v libsvt_hevc -b:v 20M -f flv rtmp://host IP/hls/Intelligent_1920x1080 -vf scale=1280:720 -c:v libx264 -b:v 10M -f flv rtmp://host IP/hls/Intelligent_1280x720 -abr_pipeline
    ffmpeg -re -stream_loop -1 -i /var/share/Intelligent.mp4 -vf scale=1920:1080 -c:v libsvt_hevc -b:v 10M -g 90 -r 30 -f flv rtmp://host IP/hls/Intelligent_1920x1080 -vf scale=1280:720 -c:v libx264 -b:v 10M -g 90 -r 30 -bf 0 -f flv rtmp://host IP/hls/Intelligent_1280x720 -abr_pipeline
    ffmpeg -re -stream_loop -1 -i stream/Intelligent.mp4 -vf scale=1920:1080 -c:v libsvt_hevc -b:v 10M -g 90 -r 30 -f flv rtmp://CDN IP/hls/Intelligent_1920x1080 -vf scale=1280:720 -c:v libx264 -b:v 10M -g 90 -r 30 -bf 0 -f flv rtmp://CDN IP/hls/Intelligent_1280x720 -abr_pipeline
  3. Run below command to use VLC and FFPLAY playback:
    http://host IP/hls/Intelligent_1920x1080/index.m3u8
    http://host IP/hls/Intelligent_1280x720/index.m3u8

VLC_Intelligent_1920x1080

Transcoding can't exit in ffmpeg transcoding server even if input rtmp streaming was finished broadcasting.

To Reproduce

  1. Use ffmpeg upstreaming stream as input media content to xcode server and do transcoding, command line such as:
ffmpeg -re -i /media/_System_Validation/mp4_h264aac/h264_1920x1080_b@40_2397_8225kbps_cbr_aac_lc_256kbps_48000_hd_the_living_see_2mn48s.mp4 -c:v copy -f flv rtmp://192.168.31.32/stream/xcode
  1. in Xcode server, use ffmpeg to do transcoding and rtmp streaming to nginx server which can transformat DASH/HLS segments, command line such as:
 ffmpeg -i rtmp://192.168.31.32/stream/xcode -s 4096*2160 -c:a copy -c:v libsvt_hevc -preset 10 -maxrate 4000000 -r 30 -f flv rtmp://192.168.31.31/dash/
  1. ffmpeg Xcode server can't exit transcoding even if input rtmp streaming is finishing broadcasting.

Expected behavior
In transcoding server, ffmpeg should exit if the input streaming was finished broadcasting.

The time format display incorrect when first time playing dash stream in VOD mode

[Issue Description]
The time format display incorrect when first time playing dash stream in VOD mode. After the first transcoding is completed, the time format will be normal.
On Chrome browser, the time shows “-14:-8”.
On Firefox browser, the time shows “2501999792983:36:31”.
On Microsoft Edge, the time shows “596523:1”.

[Reproduce Steps]

  1. Setup 1toN Xcode Sample test environment based on the guide (CDN_Transcode_Sample_Getting_Started_Guide.md).
  2. Use the following commands to start docker-compose service
    make start_docker_compose
  3. Enter VOD web page via https://HostIP with Chrome, Firefox or Microsoft Edge browser
  4. Play dash stream and check the time format.
  5. Please refer to attach files for autal phenomenon

Chrome
Firefox
Microsoft Edge

[Feature][Q1'20] Ability to specify Encoder settings via config file

Requirements of feature:

  1. During make start_kubernets Customer has ability to use default config file or specify custom config file for transcoding
    • Configuration file is used to configure encode/transcode session
  2. Should be supported for both VOD and Transcode sessions
  3. Config file to support arbitrary number of outputs per Input stream
  4. Configuration file to support configuration of, but not limited to, following Encoder configurations
    • Codec
    • Preset
    • Output resolution
    • GOP Size
    • GOP configuration(LD/RA/B Pyramid etc…)
    • Bitrate rate controls
    • HRD configuration
    • Extra field where string is concatenated at end of encoder command so additional options can be passed to encoder

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.