-
Notifications
You must be signed in to change notification settings - Fork 64
Video stream quality is not of 1080p #246
Copy link
Copy link
Closed
Description
I am trying to stream my video at 1080p , but the stream is showing like 720p. I have tried different configuration. Its not showing of that order.
My configurations
export const Livekit = ({
key,
publishUrl,
isMicOn,
useFrontCamera,
audioSampleRate,
noiseCancellation,
onConnected,
onDisconnected,
onError,
}: LivekitProps) => {
useKeepAwake()
const { baseUrl, params } = useMemo(() => extractUrlParams(publishUrl), [publishUrl])
const [retryCount, setRetryCount] = useState(0)
const [connectionReady, setConnectionReady] = useState(false)
useEffect(() => {
const start = async () => {
await AudioSession.startAudioSession()
}
start()
return () => {
AudioSession.stopAudioSession()
}
}, [])
const RoomView = useCallback(() => {
const tracks = useTracks([Track.Source.Camera])
const room = useRoomContext()
useEffect(() => {
if (room?.state === "connected") {
room.localParticipant.setCameraEnabled(true)
}
}, [room?.state])
const renderTrack: ListRenderItem<TrackReferenceOrPlaceholder> = ({ item }) => {
console.log("publication", item.publication?.isSubscribed, isTrackReference(item))
if (isTrackReference(item) && item.publication?.isSubscribed) {
return (
<VideoTrack
trackRef={item}
style={styles.participantView}
key={item.publication?.trackSid || item.participant.sid}
mirror={useFrontCamera}
objectFit="contain"
iosPIP={{
enabled: true,
startAutomatically: true,
preferredSize: {
width: 9,
height: 16,
},
}}
/>
)
}
return <View style={styles.participantView} />
}
if (!connectionReady || !room || room.state !== "connected") {
return (
<View style={styles.waitingView}>
<Text style={styles.waitingText}>Connecting...</Text>
</View>
)
}
return (
<View style={styles.container}>
<FlatList
data={tracks}
renderItem={renderTrack}
keyExtractor={(item, index) =>
isTrackReference(item)
? item.publication?.trackSid || item.participant.sid || index.toString()
: index.toString()
}
contentContainerStyle={styles.flatListContent}
/>
</View>
)
}, [useFrontCamera, connectionReady, key])
return (
<View style={{ height: heightsize, width: widthsize }}>
<LiveKitRoom
serverUrl={baseUrl}
token={params?.token ?? ""}
connect={true}
options={{
adaptiveStream: false,
publishDefaults: {
simulcast: false,
videoEncoding: {
maxBitrate: 4000000,
maxFramerate: 30,
priority: "high",
},
videoCodec: "av1",
backupCodec: true,
},
}}
audio={
isMicOn
? {
autoGainControl: !noiseCancellation,
echoCancellation: noiseCancellation,
noiseSuppression: noiseCancellation,
voiceIsolation: noiseCancellation,
sampleRate: audioSampleRate,
}
: false
}
video={{
facingMode: useFrontCamera ? "user" : "environment",
}}
onConnected={() => {
setRetryCount(0)
setConnectionReady(true)
onConnected?.()
}}
onDisconnected={() => {
if (retryCount < 3) {
setRetryCount((prev) => prev + 1)
setTimeout(() => setConnectionReady(true), 2000)
} else {
onDisconnected?.()
}
}}
onError={(e) => {
setConnectionReady(false)
onError(e)
}}
>
<RoomView />
</LiveKitRoom>
</View>
)
}
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels