Comments (5)
Workaround: Utilize the recording feature of Oryx.
TRANS_BY_GPT4
from srs.
video_full_range_flag is belong to a sps parameter. But srs only support part of sps demux. Maybe I can add more sps demux/remux features to srs later.
To this question, the pixel format is determined by this way:
First, read sps vui parameters, to get sps->vui.video_full_range_flag
;
https://github.com/FFmpeg/FFmpeg/blob/63697d3350b1975c05be126d466659885c09d2e1/libavcodec/h2645_vui.c#L62
Then, set color_range
in AVContext
to AVCOL_RANGE_JPEG
or AVCOL_RANGE_MPEG
by above value.
https://github.com/FFmpeg/FFmpeg/blob/63697d3350b1975c05be126d466659885c09d2e1/libavcodec/h264_slice.c#L1105
Then, get pix_fmt
from the color_range
.
https://github.com/FFmpeg/FFmpeg/blob/63697d3350b1975c05be126d466659885c09d2e1/libavcodec/h264_slice.c#L892-L895
So, the pix_fmt
become AV_PIX_FMT_YUVJ420P
, which is marked as deprecated in ffmpeg, if video_full_range_flag
> 0.
from srs.
Thank @suzp1984 and @winlinvip,
I found the new thing.
I can pack the .mp4 file on camera by libmp4v2 with video_full_range_flag >0 and the video still can play on MAC/WIN/IOS
I guess the video_full_range_flag=0 using for TV, buildboard... so it don't need enough attribute, and Video players easily accept it.
The video player need more metadata on video header in case The video_full_range_flag > 0.
I used ffmpeg stream mp4 file pack by libmp4v2 to srs server by rtmp. And the file from DVR still can play on MAC/WIN/IOS.
The problem now, I haven't found a difference between playable files and non-playable files
from srs.
I attach file :
video-libmp4v2-3M.mp4 can play on default player of all OS, include Win/IOS/MAC
video-libmp4v2-3M.mp4
Camera streamed rtmp and saved by DVR mode with name original, that can't play on default video player of WIN/IOS/MAC
original.mp4
I didn't find diffirence thing beetwen 2 files
from srs.
goto srs/trunk
folder.
make srs_mp4_parser
.
./objs/srs_mp4_parser original.mp4 verbose
./objs/srs_mp4_parser video-libmp4v2-3M.mp4 verbose
The mp4 container details will be printed, I don't know every single bytes means, but they are different. Anyway, srs_mp4_parser
maybe helpful to dig deeper.
And I don't think video-libmp4v2-3M.mp4
plays well in MacOS with QuickTime Player
. Compare the ffplay
with QuickTime Player
, I found QuickTime Player
only render top-left (around 1/4) picture compared with ffplay
, and Quicktime Player
is silent, no voice.
So video-libmp4v2-3M.mp4
still has problem.
from srs.
Related Issues (20)
- using vlc play srt stream, play fail and coredump HOT 1
- WebRTC: h264 FU-A parse for both S and E flag HOT 1
- requesting the HTTP-FLV using the HEAD method will cause a nullptr crash HOT 8
- heap-use-after-free crash occurs after the streaming endpoint disconnects. HOT 3
- Need current number of client in on_play/on_stop webhook body. HOT 3
- Regarding the issue of static compilation not taking effect HOT 3
- The first few seconds of audio will be lost, only video without audio play HOT 7
- SRS5 WHEP have memory leaks HOT 1
- Simultaneous SRT callers HOT 2
- A user tutorial guide
- RTMP2WebRTC play failed on ios
- HLS Encryption with AES-128 and PKCS7 padding HOT 1
- Not being able to reconnect after network unavailability HOT 2
- The srs-cloud service is no longer operational, and it is also not functioning within the Baota panel. Could you provide an updated release of resources and a new method for setting up within the Baota environment? HOT 1
- WebRTC: 10 concurrent rtc push and pull stream, crashes after a few hours~ HOT 2
- WebRTC: Chrome HEVC support HOT 1
- Recommend an alternative coroutine implementation
- Questions about webrtc one to one !!!
- The source stream fails to be pulled via HTTP-FLV during the `http_hooks_on_publish` period, and subsequent stream pulls will continue to fail. HOT 2
- When utilizing SRS Edge to forward traffic to the origin cluster, the traffic distribution is highly uneven. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from srs.