Having been in this situation myself a time or two, I have done your second idea (move to the new city and find work) both times. In the States, I moved from one state to another, and slept on a friend's couch when I got there. I signed up at some temp agencies, and went to work within two weeks of moving. Within three months of moving to the new city/state, I had a permanent job. I only got that job after moving there, because like you, my skills weren't such that they would have been willing to go to the expense of bringing me from my home state to interview.
I also moved to a new country, from the States. That went a bit differently, as I had to learn the language first, establish residency, and build enough of a network that I was able to use that to get in the door in an organization. Both of those took time, patience, and proximity.
I don't know that I recommend doing your 2nd idea, I can only speak for myself as to whether it was worth it or not (it did work for me, with caveats as noted above). Conventional wisdom suggests having a job before you go. Reality makes that a bit hard, because you're up against locals who don't offer the challenges of bringing in people from the outside.
Assuming that you are moving to a country that speaks the same language you speak, and that you can move to this country with no need to acquire a residence/work visa, then it may best serve you to figure out temp agencies that you can sign on with. They can help keep funds coming in while you look for permanent work, and also help you build a network that can be beneficial in your search. This also allows you a chance to establish yourself in the new place as a 'local', as well as continue to build experience in your field. Temp agencies can also be more willing to take on new folks from outside the area, because that's part of what they do.
Applying for work in another area is always a challenge, because you're competing with current residents who are just as qualified, and local. Even if your skills are unique, local often wins over skillset, because those can generally be taught. Hiring is an expensive process, and bringing in someone who isn't local (thus who runs the risk of leaving for reasons that the company can't change, unlike wages or work environment) is a bigger, more expensive risk than hiring locally.