Frequently even when I feel relatively comfortable in a social situation, I don't talk. In my case it's because I just have nothing to contribute that I feel anyone would appreciate or be interested in (or I literally have nothing to say about a situation because I've never had any experience with it).
Usually when that happens I ask questions about the unknown experience. I read somewhere that if you find something interesting that was said that you aren't familiar with you can research it so that when you meet them again you will have something to say about the topic.
As for the other bolded part, sometimes its difficult to know what others will and will not appreciate. If you state your opinion about something it could prompt them to talk about something else that relates to that opinion and then the conversation can keep going that way. Also asking questions gets the person to reveal more details so that you have more points to talk about.
And if none of that works I attribute it to extreme differences in personality and interests. For example, there is absolutely nothing I could contribute to a sports discussion. Sure I could research sport topics to bring up later but that wouldn't be genuine of me because I'm as interested in sports as I am in staring at the wall
I feel like its easier to connect if there are things you can relate to besides similar interests. As humans we've all experienced certain emotions, situations, and conditions in life and I think those things help everyone realize their common humanity - the fact that no one is perfect, and that everyone has ups and downs. I think that relating to others on that level is useful if you can't pull the "similar interests" card. After all, all of us here are able to hold discussions (which are sometimes long) simply because we've experienced or felt similar things relating to sa. If the same thing could be done in real life but with a different experience besides sa then I'd imagine that would make for a great conversation.
Hope all that made sense
I feel the same as you, i want to talk but nothing comes to mind or i just feel like the other person just won't care for what i'm about to say so i just sit there and nod. People say i'm angry, shy, quiet or whatever comes to their mind first, it really sucks :/
But how do you know for sure whether or not someone will care about a particular thing you have to say? And if they repeatedly show that they don't care that just lets you know which people probably won't be potential friends. Not everyone is going to agree with what you say. But at the same time, not everyone is going disagree either. You have throw your opinions out there and see what happens. If it doesn't work then you can move on to the next person. One person not caring doesn't mean that no one there after that will care.